Browse Source

生成序列号

locky 4 năm trước cách đây
mục cha
commit
76b4247b30
2 tập tin đã thay đổi với 19 bổ sung22 xóa
  1. 18 21
      Controller/SerialNumberController.py
  2. 1 1
      Service/AlgorithmService.py

+ 18 - 21
Controller/SerialNumberController.py

@@ -60,36 +60,33 @@ class SerialNumberView(View):
                 return response.json(404)
 
     def do_create(self, request_dict, response):
-        quantity = int(request_dict.get('quantity', None))
-        p2p = int(request_dict.get('p2p', None))
+        quantity = int(request_dict.get('quantity', 0))
+        p2p = int(request_dict.get('p2p', 0))
 
         if not quantity:
             return response.json(444)
-        start_time = time.strftime('%Y-%m-%d %H:%M:%S')
-        print('start create ' + start_time)
-        tmp = []
-        algorithm = AlgorithmBaseOn35()
 
-        for i in range(quantity):
+        try:
             try:
                 sum = SerialNumberModel.objects.last().id
             except:
                 sum = 0
-            serial_number = algorithm.getLetter(sum)
-            tmp_len = 6 - len(serial_number)
-            # 前面补0
-            for j in range(tmp_len):
-                serial_number = '0' + serial_number
-            data = []
+            serial_number_bulk = []
             now_time = int(time.time())
-            data.append(SerialNumberModel(serial_number=serial_number, add_time=now_time, p2p=p2p))
-            SerialNumberModel.objects.bulk_create(data)
-            data.clear()
-            start_time = time.strftime('%Y-%m-%d %H:%M:%S')
-            print('start create ' + start_time)
-            redis = RedisObject()
-            redis.del_data(key='serial_number_count')
-        return response.json(0)
+            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))
 
     # 提供给pc端获取序列号
     def do_get_serial_number(self, request_dict, response):

+ 1 - 1
Service/AlgorithmService.py

@@ -7,7 +7,7 @@ class AlgorithmBaseOn35:
 
     letters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
-               'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T',
+               'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
                'U', 'V', 'W', 'X', 'Y', 'Z']
 
     len1 = len(letters)