|
@@ -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
|
|
@@ -89,7 +90,7 @@ class UnicomManageControllerView(View):
|
|
return self.get_exchange_code_page(request_dict, response)
|
|
return self.get_exchange_code_page(request_dict, response)
|
|
elif operation == 'updateExchangeCode': # 修改兑换码
|
|
elif operation == 'updateExchangeCode': # 修改兑换码
|
|
return self.update_exchange_code(request_dict, response)
|
|
return self.update_exchange_code(request_dict, response)
|
|
- elif operation == 'resetCardPackage':
|
|
|
|
|
|
+ elif operation == 'resetCardPackage': # 单卡重置流量
|
|
return self.reset_card_package(request, request_dict, response, tko.user)
|
|
return self.reset_card_package(request, request_dict, response, tko.user)
|
|
elif operation == 'getPackageDetails':
|
|
elif operation == 'getPackageDetails':
|
|
return self.get_package_details(request_dict, response)
|
|
return self.get_package_details(request_dict, response)
|
|
@@ -1011,7 +1012,7 @@ class UnicomManageControllerView(View):
|
|
获取4G流量套餐列表
|
|
获取4G流量套餐列表
|
|
@return: 套餐列表
|
|
@return: 套餐列表
|
|
"""
|
|
"""
|
|
- combo_qs = UnicomCombo.objects.filter(is_del=False, combo_type__in=[0, 3])
|
|
|
|
|
|
+ combo_qs = UnicomCombo.objects.filter(is_del=False)
|
|
if not combo_qs.exists():
|
|
if not combo_qs.exists():
|
|
return response.json(173)
|
|
return response.json(173)
|
|
combo_qs = combo_qs.values('id', 'combo_name').order_by('-created_time')
|
|
combo_qs = combo_qs.values('id', 'combo_name').order_by('-created_time')
|
|
@@ -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():
|
|
|
|
- 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}
|
|
@@ -1099,27 +1112,28 @@ class UnicomManageControllerView(View):
|
|
if sys_msg_qs.exists(): # 删除有关系统消息数据
|
|
if sys_msg_qs.exists(): # 删除有关系统消息数据
|
|
sys_msg_qs.delete()
|
|
sys_msg_qs.delete()
|
|
# 将4G用户信息状态改为已完成测试状态
|
|
# 将4G用户信息状态改为已完成测试状态
|
|
- device_info_qs.update(status=1, 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) # 重置流量停用设备
|
|
|
|
- # 记录日志,清除缓存
|
|
|
|
- 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):
|
|
@@ -1249,6 +1263,9 @@ class UnicomManageControllerView(View):
|
|
package_info['status'] = 1
|
|
package_info['status'] = 1
|
|
package_info['flow_total_usage'] = unicom_api.get_flow_usage_total(iccid)
|
|
package_info['flow_total_usage'] = unicom_api.get_flow_usage_total(iccid)
|
|
UnicomComboOrderInfo.objects.create(**package_info)
|
|
UnicomComboOrderInfo.objects.create(**package_info)
|
|
|
|
+ # 设置旧套餐状态为2
|
|
|
|
+ u_package_query_set.update(status=2, updated_time=int(time.time()))
|
|
|
|
+
|
|
else:
|
|
else:
|
|
UnicomComboView.create_combo_order_info(now_order, 0, iccid, package_id)
|
|
UnicomComboView.create_combo_order_info(now_order, 0, iccid, package_id)
|
|
|
|
|
|
@@ -1259,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)
|
|
-
|
|
|