|
@@ -105,7 +105,7 @@ class UnicomManageControllerView(View):
|
|
elif operation == 'downloadCDK': # 下载兑换码
|
|
elif operation == 'downloadCDK': # 下载兑换码
|
|
return self.package_cdk_export_excel(response)
|
|
return self.package_cdk_export_excel(response)
|
|
elif operation == 'uploadSerialNumberFile': # 上传序列号文件绑定4G套餐
|
|
elif operation == 'uploadSerialNumberFile': # 上传序列号文件绑定4G套餐
|
|
- return self.upload_file(tko.user, request, request_dict, response)
|
|
|
|
|
|
+ return self.upload_file(userID, tko.user, request, request_dict, response)
|
|
elif operation == 'iccidBatchReset': # 批量重置流量
|
|
elif operation == 'iccidBatchReset': # 批量重置流量
|
|
return self.iccid_batch_reset(tko.user, request, request_dict, response)
|
|
return self.iccid_batch_reset(tko.user, request, request_dict, response)
|
|
elif operation == 'orderFlowPackage': # 订购流量套餐包
|
|
elif operation == 'orderFlowPackage': # 订购流量套餐包
|
|
@@ -1066,9 +1066,10 @@ class UnicomManageControllerView(View):
|
|
return response.json(0, flow_combo_list)
|
|
return response.json(0, flow_combo_list)
|
|
|
|
|
|
@classmethod
|
|
@classmethod
|
|
- def upload_file(cls, user, request, request_dict, response):
|
|
|
|
|
|
+ def upload_file(cls, user_id, user, request, request_dict, response):
|
|
"""
|
|
"""
|
|
上传序列号文件绑定套餐id
|
|
上传序列号文件绑定套餐id
|
|
|
|
+ @param user_id: user_id
|
|
@param user: 当前操作用户
|
|
@param user: 当前操作用户
|
|
@param request: file txt
|
|
@param request: file txt
|
|
@param request_dict: package_id 4G套餐id
|
|
@param request_dict: package_id 4G套餐id
|
|
@@ -1084,6 +1085,11 @@ class UnicomManageControllerView(View):
|
|
n_time = int(time.time())
|
|
n_time = int(time.time())
|
|
package_id = int(package_id)
|
|
package_id = int(package_id)
|
|
sn_list = []
|
|
sn_list = []
|
|
|
|
+
|
|
|
|
+ uc_qs = UnicomCombo.objects.filter(id=package_id)
|
|
|
|
+ if not uc_qs.exists():
|
|
|
|
+ return response.json(173)
|
|
|
|
+
|
|
for line in file:
|
|
for line in file:
|
|
serial_number = line.decode().strip()[0:9]
|
|
serial_number = line.decode().strip()[0:9]
|
|
try:
|
|
try:
|
|
@@ -1103,8 +1109,46 @@ class UnicomManageControllerView(View):
|
|
error_list.append({'serialNumber': serial_number, 'msg': repr(e)})
|
|
error_list.append({'serialNumber': serial_number, 'msg': repr(e)})
|
|
if sn_list:
|
|
if sn_list:
|
|
SerialNumberPackage.objects.bulk_create(sn_list)
|
|
SerialNumberPackage.objects.bulk_create(sn_list)
|
|
|
|
+
|
|
|
|
+ # 终身免流量时只保留一个有效套餐并自动激活
|
|
|
|
+ if uc_qs.first().remark == 'LIFETIME_FREE':
|
|
|
|
+ asy = threading.Thread(target=cls.activate_4G_lifetime_free, args=(sn_list, user_id))
|
|
|
|
+ asy.start()
|
|
|
|
+
|
|
return response.json(0, {'total': len(serial_list), 'errData': error_list})
|
|
return response.json(0, {'total': len(serial_list), 'errData': error_list})
|
|
|
|
|
|
|
|
+ @classmethod
|
|
|
|
+ def activate_4G_lifetime_free(cls, sn_list, user_id):
|
|
|
|
+ """
|
|
|
|
+ 激活4G终身免流量
|
|
|
|
+ """
|
|
|
|
+
|
|
|
|
+ for item in sn_list:
|
|
|
|
+ try:
|
|
|
|
+ serial_number = item.serial_number
|
|
|
|
+
|
|
|
|
+ # 查询ICCID
|
|
|
|
+ iccid_qs = UnicomDeviceInfo.objects.filter(serial_no=serial_number).values('iccid')
|
|
|
|
+ if not iccid_qs.exists():
|
|
|
|
+ LOGGER.info(f'*****激活终身免流量iccid不存在serial_number:{serial_number}')
|
|
|
|
+ continue
|
|
|
|
+
|
|
|
|
+ now_time = int(time.time())
|
|
|
|
+ # 写入套餐订购记录
|
|
|
|
+ experience_history_vo = {'iccid': iccid_qs[0]['iccid'], 'experience_type': 1, 'do_time': now_time}
|
|
|
|
+ UnicomComboExperienceHistory.objects.create(**experience_history_vo)
|
|
|
|
+
|
|
|
|
+ # 根据ICCID删除套餐记录
|
|
|
|
+ UnicomComboOrderInfo.objects.filter(iccid=iccid_qs[0]['iccid']).delete()
|
|
|
|
+
|
|
|
|
+ # 激活终身流量
|
|
|
|
+ UnicomComboView().generate_flow_package(serial_number, item.package_id, user_id)
|
|
|
|
+
|
|
|
|
+ except Exception as e:
|
|
|
|
+ LOGGER.info('UnicomManageControllerView.activate_4G_lifetime_free,'
|
|
|
|
+ 'errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
+ continue
|
|
|
|
+
|
|
@classmethod
|
|
@classmethod
|
|
def iccid_batch_reset(cls, user, request, request_dict, response):
|
|
def iccid_batch_reset(cls, user, request, request_dict, response):
|
|
"""
|
|
"""
|