Ver Fonte

修复分配序列号存在问题

locky há 2 anos atrás
pai
commit
e541c5e415
1 ficheiros alterados com 28 adições e 37 exclusões
  1. 28 37
      Controller/SerialNumberController.py

+ 28 - 37
Controller/SerialNumberController.py

@@ -47,7 +47,7 @@ class SerialNumberView(View):
 
         if operation == 'quantity':  # 查询当前可用的UID的数量
             return self.do_quantity(token.userID, response)
-        elif operation == 'allot':
+        elif operation == 'allot':   # 分配序列号
             return self.do_allot(request_dict, response)
         elif operation == 'createSerial':  # 生成序列号
             return self.create_serial(request_dict, response, request, token.userID)
@@ -383,7 +383,6 @@ class SerialNumberView(View):
             print(e)
             return response.json(500, repr(e))
 
-    # 分配序列号
     @transaction.atomic
     def do_allot(self, request_dict, response):
         username = request_dict.get('username', None)
@@ -421,42 +420,34 @@ class SerialNumberView(View):
         try:
             updates = []
             datas = []
-            count = 0
-            if sn_qs.exists():
-                sn_qs = sn_qs[0:quantity]
-                now_time = int(time.time())
-                for i in range(len(sn_qs)):
-                    item = sn_qs[i]
-                    serialNumberModel = SerialNumberModel(
-                        id=item.id,
-                        serial_number=item.serial_number,
-                        status=item.status,
-                        use_status=1,
-                        add_time=item.add_time
-                    )
-                    CompanySerialModel.objects.filter(serial_number=item.serial_number).update(status=1)
-                    user_serial_number = UserSerialNumberModel()
-                    user_serial_number.serial_number = serialNumberModel
-                    user_serial_number.user = allot_user_qs[0]
-                    user_serial_number.add_time = now_time
-                    user_serial_number.update_time = now_time
-
-                    datas.append(user_serial_number)
-                    updates.append(serialNumberModel)
-
-                    if len(updates) % 5000 == 0:
-                        bulk_update(updates)
-                        UserSerialNumberModel.objects.bulk_create(datas)
-
-                if len(updates) > 0:
-                    bulk_update(updates)
-                    UserSerialNumberModel.objects.bulk_create(datas)
-
-                del datas
-                del updates
-                return response.json(0)
-            else:
+            if not sn_qs.exists():
                 return response.json(444)
+            sn_qs = sn_qs[0:quantity]
+            now_time = int(time.time())
+            for i in range(len(sn_qs)):
+                item = sn_qs[i]
+                serialNumberModel = SerialNumberModel(
+                    id=item.id,
+                    serial_number=item.serial_number,
+                    status=item.status,
+                    use_status=1,
+                    add_time=item.add_time
+                )
+                CompanySerialModel.objects.filter(serial_number=item.serial_number).update(status=1)
+                user_serial_number = UserSerialNumberModel()
+                user_serial_number.serial_number = serialNumberModel
+                user_serial_number.user = allot_user_qs[0]
+                user_serial_number.add_time = now_time
+                user_serial_number.update_time = now_time
+
+                datas.append(user_serial_number)
+                updates.append(serialNumberModel)
+
+            if len(updates) > 0:
+                bulk_update(updates)
+                UserSerialNumberModel.objects.bulk_create(datas)
+
+            return response.json(0)
         except Exception as e:
             print(e)
             return response.json(500)