Ver código fonte

MAC+序列号生成CSV文件

linhaohong 1 ano atrás
pai
commit
10156ab281
1 arquivos alterados com 17 adições e 23 exclusões
  1. 17 23
      Controller/SerialNumberController.py

+ 17 - 23
Controller/SerialNumberController.py

@@ -684,37 +684,32 @@ class SerialNumberView(View):
             user__id=user_id,
             serial_number__status=1,
             serial_number__use_status=1
-        ).select_related('serial_number')[:quantity]
+        ).values('serial_number__serial_number')[:quantity]
 
         # 判断序列号地址是否充足
         if len(user_serial_numbers) < quantity:
             return response.json(444, '序列号不足')
 
         now_time = int(time.time())
-        #需要更新的序列号表
-        company_serial_numbers_list = []
-        #保存到CSV的数据
+        # 需要更新的序列号表
+        serial_numbers_list = []
+        # 保存到CSV的数据
         csv_data = []
-        # 收集需要更新的序列号对象
-        serials_to_update = []
+
+        mark = ''
+        if company_id == 1:
+            mark = '11A'
+        elif company_id == 2:
+            mark = '11L'
 
         for user_serial in user_serial_numbers:
-            serial = user_serial.serial_number
-            company_serial_numbers_list.append(serial.serial_number)
+            serial_number = user_serial['serial_number__serial_number']
+            serial_numbers_list.append(serial_number)
             next_mac = CommonService.updateMac(mac)
 
-            if company_id == 1:
-                csv_serial_number = serial.serial_number + '11A'
-            elif company_id == 2:
-                csv_serial_number = serial.serial_number + '11L'
-            # company_id其余情况不加后缀
-            else:
-                csv_serial_number = serial.serial_number
-
+            csv_serial_number = serial_number + mark
             csv_data.append([next_mac, csv_serial_number])
             mac = next_mac
-            serial.use_status = 2
-            serials_to_update.append(serial)
 
         # 批量写入CSV文件
         with open('mac_serial.csv', 'w', newline='') as csvfile:
@@ -722,11 +717,10 @@ class SerialNumberView(View):
             writer.writerow(['MAC', 'SN'])
             writer.writerows(csv_data)
 
-        # 批量更新erialNumberModel
-        SerialNumberModel.objects.bulk_update(serials_to_update, ['use_status'])
-
-        # 更新CompanySerialModel表
-        CompanySerialModel.objects.filter(serial_number__in=company_serial_numbers_list)\
+        # 更新SerialNumberModel,CompanySerialModel表
+        SerialNumberModel.objects.filter(serial_number__in=serial_numbers_list) \
+            .update(use_status=2)
+        CompanySerialModel.objects.filter(serial_number__in=serial_numbers_list) \
             .update(status=2, update_time=now_time)
         next_mac = CommonService.updateMac(mac)
         mac_qs.update(value=next_mac, update_time=now_time)