|
@@ -105,10 +105,12 @@ class UnicomManageControllerView(View):
|
|
|
return self.iccid_batch_reset(tko.user, request, request_dict, response)
|
|
|
elif operation == 'orderFlowPackage': # 订购流量套餐包
|
|
|
return self.order_flow_package(request_dict, response, userID)
|
|
|
- elif operation == 'getSerialNumberPackagePage': # 订购流量套餐包
|
|
|
+ elif operation == 'getSerialNumberPackagePage': # 分页获取序列号绑定套餐
|
|
|
return self.serial_number_package_page(request_dict, response)
|
|
|
- elif operation == 'serialNumberPackageUpdate': # 订购流量套餐包
|
|
|
+ elif operation == 'serialNumberPackageUpdate': # 序列号绑定套餐修改
|
|
|
return self.serial_number_package_update(request_dict, response, tko.user)
|
|
|
+ elif operation == 'transferDevicePackage': # 转移设备套餐
|
|
|
+ return self.transfer_device_package(request_dict, response, tko.user)
|
|
|
else:
|
|
|
return response.json(404)
|
|
|
|
|
@@ -1156,15 +1158,18 @@ class UnicomManageControllerView(View):
|
|
|
createdTime=F('created_time'), createdBy=F('created_by'),
|
|
|
updatedTime=F('updated_time'), updatedBy=F('updated_by')) \
|
|
|
.values('id', 'serialNumber', 'status', 'packageId', 'createdTime', 'createdBy', 'updatedTime', 'updatedBy')
|
|
|
+ total = serial_package_qs.count()
|
|
|
+
|
|
|
serial_package_qs = serial_package_qs.order_by('-created_time')[(page - 1) * line:page * line]
|
|
|
if not serial_package_qs.exists():
|
|
|
return response.json(0, [])
|
|
|
serial_list = []
|
|
|
+
|
|
|
for item in serial_package_qs:
|
|
|
data = item
|
|
|
data['packageName'] = UnicomCombo.objects.filter(id=item['packageId']).values('combo_name')[0]['combo_name']
|
|
|
serial_list.append(data)
|
|
|
- return response.json(0, serial_list)
|
|
|
+ return response.json(0, {'list': serial_list, 'total': total})
|
|
|
|
|
|
@classmethod
|
|
|
def serial_number_package_update(cls, request_dict, response, user):
|
|
@@ -1194,3 +1199,78 @@ class UnicomManageControllerView(View):
|
|
|
LOGGER.info('UnicomManageControllerView.serial_number_package_update,'
|
|
|
'errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
return response.json(500)
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def transfer_device_package(cls, request_dict, response, user):
|
|
|
+ """
|
|
|
+ 联通4G订单套餐转移
|
|
|
+ @param request_dict: orderId(当前订单套餐id)、targetSerialNumber(目标设备序列号)
|
|
|
+ @param response: 响应结果
|
|
|
+ @param user: 操作用户
|
|
|
+ @return: 转移结果
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ order_id = request_dict.get('orderId')
|
|
|
+ target_serial_number = request_dict.get('targetSerialNumber')
|
|
|
+ LOGGER.info('UnicomManageControllerView.transfer_device_package,serialNumber:{},orderId:{}'.format(
|
|
|
+ target_serial_number, order_id))
|
|
|
+
|
|
|
+ if not all([order_id, target_serial_number]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ # 查询旧设备订单套餐信息
|
|
|
+ order_query_set = Order_Model.objects.filter(orderID=order_id)
|
|
|
+ if not order_query_set.exists():
|
|
|
+ return response.json(173)
|
|
|
+
|
|
|
+ # 查询目标设备信息是否存在
|
|
|
+ u_device_query_set = UnicomDeviceInfo.objects.filter(serial_no=target_serial_number)
|
|
|
+ if not u_device_query_set.exists():
|
|
|
+ return response.json(173)
|
|
|
+
|
|
|
+ order_data = order_query_set.values().first()
|
|
|
+ old_order_id = order_data['orderID']
|
|
|
+ desc = '{} 转移后,前orderId:{}'.format(order_data['store_meal_name'], old_order_id)
|
|
|
+ order_data['desc'] = desc
|
|
|
+ now_order = CommonService.createOrderID()
|
|
|
+ uid = CommonService.query_uid_with_serial(target_serial_number)
|
|
|
+ order_data['orderID'] = now_order
|
|
|
+ order_data['UID'] = uid
|
|
|
+ order_data['currency'] = 'CNY'
|
|
|
+ package_id = int(order_data['unify_combo_id'])
|
|
|
+ Order_Model.objects.create(**order_data)
|
|
|
+
|
|
|
+ iccid = u_device_query_set.values('iccid').first()['iccid'] # 目标设备4G iccid
|
|
|
+
|
|
|
+ u_package_query_set = UnicomComboOrderInfo.objects.filter(order_id=old_order_id)
|
|
|
+ now_time = int(time.time())
|
|
|
+ unicom_api = UnicomObjeect()
|
|
|
+
|
|
|
+ if u_package_query_set.exists(): # 套餐记录存在则直接copy
|
|
|
+ package_info = u_package_query_set.values().first()
|
|
|
+ package_info.pop('id')
|
|
|
+ package_info['iccid'] = iccid
|
|
|
+ package_info['order_id'] = now_order
|
|
|
+ package_info['activation_time'] = now_time
|
|
|
+ package_info['updated_time'] = now_time
|
|
|
+ package_info['created_time'] = now_time
|
|
|
+
|
|
|
+ now_package_query_set = UnicomComboOrderInfo.objects.filter(iccid=iccid, status=1)
|
|
|
+ if now_package_query_set.exists():
|
|
|
+ package_info['status'] = 0
|
|
|
+ package_info['flow_total_usage'] = '0'
|
|
|
+ else:
|
|
|
+ package_info['status'] = 1
|
|
|
+ package_info['flow_total_usage'] = unicom_api.get_flow_usage_total(iccid)
|
|
|
+ UnicomComboOrderInfo.objects.create(**package_info)
|
|
|
+ else:
|
|
|
+ UnicomComboView.create_combo_order_info(now_order, 0, iccid, package_id)
|
|
|
+
|
|
|
+ describe = f'{order_id}套餐转移成功,操作人{user}'
|
|
|
+ cls.create_operation_log('unicom/manage/transferDevicePackage', '127.0.0.1', request_dict, describe)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ LOGGER.info('UnicomManageControllerView.transfer_device_package, errLine:{}, errMsg:{}'.format(
|
|
|
+ e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return response.json(500)
|
|
|
+
|