123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/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))
|