#!/usr/bin/env python3 # -*- coding: utf-8 -*- import time from django.db import transaction from django.views import View from Model.models import SerialNumberModel from Object.ResponseObject import ResponseObject from Service.AlgorithmService import AlgorithmBaseOn35 class SerialNumberView(View): def get(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation', None) request_dict = request.GET return self.validate(request_dict, operation, request) def post(self, request, *args, **kwargs): request.encoding = 'utf-8' operation = kwargs.get('operation', None) request_dict = request.POST return self.validate(request_dict, operation, request) def validate(self, request_dict, operation, request): response = ResponseObject() if operation == 'create': return self.do_create(request_dict, response) else: return response.json(404) def do_create(self, request_dict, response): quantity = int(request_dict.get('quantity', 0)) p2p = int(request_dict.get('p2p', 0)) if not quantity: return response.json(444) try: try: sum = SerialNumberModel.objects.last().id except: sum = 0 serial_number_bulk = [] now_time = int(time.time()) algorithm = AlgorithmBaseOn35() for i in range(quantity): serial_number = algorithm.getLetter(sum) sum += 1 # sum每次递增1 # 前面补0至六位 serial_number = (6-len(serial_number))*'0' + serial_number serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time, p2p=p2p)) # 开启事务写入 with transaction.atomic(): SerialNumberModel.objects.bulk_create(serial_number_bulk) return response.json(0) except Exception as e: print(e) return response.json(500, repr(e))