Просмотр исходного кода

批量重置增加类型选项

zhangdongming 1 год назад
Родитель
Сommit
78744fc2a5
1 измененных файлов с 26 добавлено и 15 удалено
  1. 26 15
      AdminController/UnicomManageController.py

+ 26 - 15
AdminController/UnicomManageController.py

@@ -7,6 +7,7 @@
 import datetime
 import datetime
 import hashlib
 import hashlib
 import json
 import json
+import threading
 import time
 import time
 import uuid
 import uuid
 from decimal import Decimal
 from decimal import Decimal
@@ -1064,8 +1065,17 @@ class UnicomManageControllerView(View):
         iccid批量重置流量
         iccid批量重置流量
         """
         """
         file = request.FILES['file']
         file = request.FILES['file']
+        binding_type = int(request_dict.get('type', 0))
         if not file:
         if not file:
             return response.json(444)
             return response.json(444)
+        ip = CommonService.get_ip_address(request)
+        asy = threading.Thread(target=UnicomManageControllerView().async_bulk_reset_flow_package,
+                               args=(file, user, ip, binding_type))
+        asy.start()
+        return response.json(0)
+
+    @staticmethod
+    def async_bulk_reset_flow_package(file, user, ip, binding_type):
         err_data = []
         err_data = []
         for line in file:
         for line in file:
             serial_number = line.decode().strip()[0:9]
             serial_number = line.decode().strip()[0:9]
@@ -1077,10 +1087,13 @@ class UnicomManageControllerView(View):
                     continue
                     continue
 
 
                 iccid = device_info_qs.first().iccid
                 iccid = device_info_qs.first().iccid
-                # 根据序列号查询是否有出厂绑定无限流量套餐
-                serial_package_qs = SerialNumberPackage.objects.filter(~Q(status=1), serial_number=serial_number)
-                if serial_package_qs.exists():  # 有并且不等于1
-                    serial_package_qs.update(status=1, updated_time=now_time, updated_by=user)
+                if binding_type == 1:
+                    SerialNumberPackage.objects.filter(serial_number=serial_number).delete()
+                else:
+                    # 根据序列号重置出厂流量套餐
+                    serial_package_qs = SerialNumberPackage.objects.filter(~Q(status=1), serial_number=serial_number)
+                    if serial_package_qs.exists():
+                        serial_package_qs.update(status=1, updated_time=now_time, updated_by=user)
 
 
                 if device_info_qs.first().card_type == 1:  # 五兴电信
                 if device_info_qs.first().card_type == 1:  # 五兴电信
                     data = {'iccids': iccid, 'operator': WXOperatorEnum.TELECOM.value}
                     data = {'iccids': iccid, 'operator': WXOperatorEnum.TELECOM.value}
@@ -1102,26 +1115,25 @@ class UnicomManageControllerView(View):
                 device_info_qs.update(status=2, updated_time=now_time, user_id='')
                 device_info_qs.update(status=2, updated_time=now_time, user_id='')
 
 
                 combo_order_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid)
                 combo_order_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid)
-                if combo_order_qs.exists():
+                if combo_order_qs.exists():  # 所有套餐删除
                     combo_order_qs.delete()
                     combo_order_qs.delete()
 
 
                 combo_experience_history_qs = UnicomComboExperienceHistory.objects.filter(iccid=iccid)
                 combo_experience_history_qs = UnicomComboExperienceHistory.objects.filter(iccid=iccid)
-                if combo_experience_history_qs.exists():
+                if combo_experience_history_qs.exists():  # 删除免费体验流量记录
                     combo_experience_history_qs.delete()
                     combo_experience_history_qs.delete()
-                # UnicomObjeect().change_device_to_disable(iccid)  # 重置流量停用设备
-                result = UnicomComboView().activate_test_flow_package(serial_number)
-                LOGGER.info(f'{serial_number}重置流量{result}')
-                # 记录日志,清除缓存
-                ip = CommonService.get_ip_address(request)
-                describe = '重置4G流量序列号{},iccid:{}'.format(serial_number, iccid)
+                result = UnicomComboView().activate_test_flow_package(serial_number)  # 订购新的100M测试流量
+
+                describe = '批量重置4G流量序列号{},iccid:{},{}'.format(serial_number, iccid, result)
                 key = f'ASJ:UNICOM:CARD:ACTIVATE:{serial_number}'
                 key = f'ASJ:UNICOM:CARD:ACTIVATE:{serial_number}'
                 redis = RedisObject()
                 redis = RedisObject()
                 redis.del_data(key)
                 redis.del_data(key)
-                cls.create_operation_log('unicom/manage/iccidBatchReset', ip, request_dict, describe)
+                UnicomManageControllerView().create_operation_log('unicom/manage/iccidBatchReset', ip, binding_type,
+                                                                  describe)
                 continue
                 continue
             except Exception as e:
             except Exception as e:
                 err_data.append({'serialNumber': serial_number, 'msg': '重置流量异常:{}'.format(repr(e))})
                 err_data.append({'serialNumber': serial_number, 'msg': '重置流量异常:{}'.format(repr(e))})
-        return response.json(0, err_data)
+                continue
+        LOGGER.info(f'批量重置流量type={binding_type},err_data={err_data}')
 
 
     @classmethod
     @classmethod
     def serial_number_package_page(cls, request_dict, response):
     def serial_number_package_page(cls, request_dict, response):
@@ -1264,4 +1276,3 @@ class UnicomManageControllerView(View):
             LOGGER.info('UnicomManageControllerView.transfer_device_package, errLine:{}, errMsg:{}'.format(
             LOGGER.info('UnicomManageControllerView.transfer_device_package, errLine:{}, errMsg:{}'.format(
                 e.__traceback__.tb_lineno, repr(e)))
                 e.__traceback__.tb_lineno, repr(e)))
             return response.json(500)
             return response.json(500)
-