|
@@ -7,6 +7,7 @@
|
|
|
import datetime
|
|
|
import hashlib
|
|
|
import json
|
|
|
+import threading
|
|
|
import time
|
|
|
import uuid
|
|
|
from decimal import Decimal
|
|
@@ -1064,8 +1065,17 @@ class UnicomManageControllerView(View):
|
|
|
iccid批量重置流量
|
|
|
"""
|
|
|
file = request.FILES['file']
|
|
|
+ binding_type = int(request_dict.get('type', 0))
|
|
|
if not file:
|
|
|
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 = []
|
|
|
for line in file:
|
|
|
serial_number = line.decode().strip()[0:9]
|
|
@@ -1077,10 +1087,13 @@ class UnicomManageControllerView(View):
|
|
|
continue
|
|
|
|
|
|
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: # 五兴电信
|
|
|
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='')
|
|
|
|
|
|
combo_order_qs = UnicomComboOrderInfo.objects.filter(iccid=iccid)
|
|
|
- if combo_order_qs.exists():
|
|
|
+ if combo_order_qs.exists(): # 所有套餐删除
|
|
|
combo_order_qs.delete()
|
|
|
|
|
|
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()
|
|
|
- # 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}'
|
|
|
redis = RedisObject()
|
|
|
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
|
|
|
except Exception as 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
|
|
|
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(
|
|
|
e.__traceback__.tb_lineno, repr(e)))
|
|
|
return response.json(500)
|
|
|
-
|