|
@@ -122,6 +122,8 @@ class UnicomManageControllerView(View):
|
|
return self.transfer_device_package(request_dict, response, tko.user)
|
|
return self.transfer_device_package(request_dict, response, tko.user)
|
|
elif operation == 'updateExpirationDate': # 修改套餐过期时间
|
|
elif operation == 'updateExpirationDate': # 修改套餐过期时间
|
|
return self.update_expiration_date(request_dict, response)
|
|
return self.update_expiration_date(request_dict, response)
|
|
|
|
+ elif operation == 'batchOrderFlowPackage': # 批量订购流量套餐包
|
|
|
|
+ return self.batch_order_flow_package(request, request_dict, response, userID)
|
|
if operation == 'verifyPackageExport':
|
|
if operation == 'verifyPackageExport':
|
|
return self.verify_package_export_excel(request, request_dict, response)
|
|
return self.verify_package_export_excel(request, request_dict, response)
|
|
else:
|
|
else:
|
|
@@ -1553,3 +1555,63 @@ class UnicomManageControllerView(View):
|
|
LOGGER.info('*****UnicomManageController.package_cdk_export_excel:errLine:{}, errMsg:{}'
|
|
LOGGER.info('*****UnicomManageController.package_cdk_export_excel:errLine:{}, errMsg:{}'
|
|
.format(e.__traceback__.tb_lineno, repr(e)))
|
|
.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def batch_order_flow_package(cls, request, request_dict, response, user_id):
|
|
|
|
+ serial_number_file = request.FILES.get('serialNumberFile', None)
|
|
|
|
+ package_id = request_dict.get('packageId', None)
|
|
|
|
+
|
|
|
|
+ if serial_number_file is None or package_id is None:
|
|
|
|
+ return response.json(444)
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ # 读取序列号文件
|
|
|
|
+ serial_numbers = [line.decode('utf-8').strip() for line in serial_number_file.readlines()]
|
|
|
|
+ if all(len(serial_number) == 9 for serial_number in serial_numbers):
|
|
|
|
+ thread = threading.Thread(target=cls.batch_order_flow,
|
|
|
|
+ args=(serial_numbers, package_id, request, request_dict, user_id))
|
|
|
|
+ thread.start()
|
|
|
|
+ else:
|
|
|
|
+ return response.json(10, "请导入9位序列号")
|
|
|
|
+ return response.json(0)
|
|
|
|
+
|
|
|
|
+ except Exception as e:
|
|
|
|
+ LOGGER.info('*****UnicomManageController.batch_order_flow_package:errLine:{}, errMsg:{}'
|
|
|
|
+ .format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def batch_order_flow(cls, serial_numbers, package_id, request, request_dict, user_id):
|
|
|
|
+ try:
|
|
|
|
+ failures = [] # 记录失败的序列号
|
|
|
|
+ successes = [] # 记录成功的数量
|
|
|
|
+
|
|
|
|
+ # 循环添加
|
|
|
|
+ for serial_number in serial_numbers:
|
|
|
|
+ serial_number = serial_number[:9]
|
|
|
|
+ result = UnicomComboView().generate_flow_package(serial_number, int(package_id), user_id)
|
|
|
|
+ LOGGER.info(f'{serial_number} 订购流量套餐包, createdBy:{user_id}, result:{result}')
|
|
|
|
+ if not result:
|
|
|
|
+ failures.append(serial_number)
|
|
|
|
+ else:
|
|
|
|
+ successes.append(serial_number)
|
|
|
|
+
|
|
|
|
+ # 写入操作日志
|
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
|
|
+ content = json.loads(json.dumps(request_dict))
|
|
|
|
+ log = {
|
|
|
|
+ 'ip': ip,
|
|
|
|
+ 'user_id': 1,
|
|
|
|
+ 'status': 200,
|
|
|
|
+ 'time': int(time.time()),
|
|
|
|
+ 'url': 'unicom/manage/batchOrderFlowPackage',
|
|
|
|
+ 'content': json.dumps(content),
|
|
|
|
+ 'operation': f'批量充值流量,序列号{failures}充值失败,序列号{successes}流量充值成功',
|
|
|
|
+ }
|
|
|
|
+ LogModel.objects.create(**log)
|
|
|
|
+ return
|
|
|
|
+
|
|
|
|
+ except Exception as e:
|
|
|
|
+ LOGGER.info('*****UnicomManageController.batch_order_flow:errLine:{}, errMsg:{}'
|
|
|
|
+ .format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
+ return
|