|
@@ -122,6 +122,10 @@ class UnicomManageControllerView(View):
|
|
|
return self.transfer_device_package(request_dict, response, tko.user)
|
|
|
elif operation == 'updateExpirationDate': # 修改套餐过期时间
|
|
|
return self.update_expiration_date(request_dict, response)
|
|
|
+ elif operation == 'batchOrderFlowPackage': # 批量订购流量套餐包
|
|
|
+ return self.batch_order_flow_package(request, request_dict, response, userID)
|
|
|
+ elif operation == 'updateFlowComboById': # 根据ID更新流量套餐
|
|
|
+ return self.update_flow_combo_by_id(request_dict, response)
|
|
|
if operation == 'verifyPackageExport':
|
|
|
return self.verify_package_export_excel(request, request_dict, response)
|
|
|
else:
|
|
@@ -851,6 +855,22 @@ class UnicomManageControllerView(View):
|
|
|
return response.json(0, {'package_list': cls.get_dx_package_list(original_data)})
|
|
|
return response.json(0, {'package_list': package_list})
|
|
|
|
|
|
+ @classmethod
|
|
|
+ def update_flow_combo_by_id(cls, request_dict, response):
|
|
|
+ """
|
|
|
+ 根据ID修改流量套餐
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ flow_combo_id = request_dict.get('id', None)
|
|
|
+ expire_time = request_dict.get('expireTime', None)
|
|
|
+ if not all([flow_combo_id, expire_time]):
|
|
|
+ return response.json(0)
|
|
|
+ UnicomComboOrderInfo.objects.filter(id=int(flow_combo_id)).update(expire_time=int(expire_time))
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ LOGGER.error('*****更新流量套餐异常:errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return response(500)
|
|
|
+
|
|
|
@staticmethod
|
|
|
def get_unicom_package_list(iccid, o_qs):
|
|
|
package_list = []
|
|
@@ -1553,3 +1573,63 @@ class UnicomManageControllerView(View):
|
|
|
LOGGER.info('*****UnicomManageController.package_cdk_export_excel: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_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
|