|
@@ -9,7 +9,9 @@ import time
|
|
|
from django.db import transaction
|
|
|
from django.views.generic.base import View
|
|
|
|
|
|
-from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User, Device_Info
|
|
|
+from Controller.UnicomCombo.UnicomComboController import UnicomComboView
|
|
|
+from Model.models import UnicomDeviceInfo, UnicomCombo, Pay_Type, UnicomComboOrderInfo, Device_User, Device_Info, \
|
|
|
+ Order_Model
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Service.CommonService import CommonService
|
|
|
|
|
@@ -38,7 +40,7 @@ class UnicomManageControllerView(View):
|
|
|
# 添加和编辑卡套餐
|
|
|
elif operation == 'edit/combo':
|
|
|
return self.edit_combo(request_dict, response)
|
|
|
- # 获取/筛选设备套餐订单信息
|
|
|
+ # 获取/筛选4G流量卡订单信息
|
|
|
elif operation == 'order/info':
|
|
|
return self.get_order_info(request_dict, response)
|
|
|
# 统计4G套餐
|
|
@@ -50,6 +52,9 @@ class UnicomManageControllerView(View):
|
|
|
# 获取/筛选用户信息
|
|
|
elif operation == 'filter/user':
|
|
|
return self.get_user_info(request_dict, response)
|
|
|
+ # 充值流量
|
|
|
+ elif operation == 'getFlowPackages':
|
|
|
+ return self.get_flow_packages(request_dict, response)
|
|
|
|
|
|
def get_user_info(self, request_dict, response):
|
|
|
"""
|
|
@@ -429,3 +434,69 @@ class UnicomManageControllerView(View):
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
|
return response.json(500, repr(e))
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def get_flow_packages(cls, request_dict, response):
|
|
|
+ """
|
|
|
+ 赠送套餐流量
|
|
|
+ @param request_dict:请求参数
|
|
|
+ @username request_dict:用户名
|
|
|
+ @comboType request_dict:套餐类型
|
|
|
+ @serialNo request_dict:序列号
|
|
|
+ @param response: 响应对象
|
|
|
+ @param return:
|
|
|
+ """
|
|
|
+ username = request_dict.get('username', None)
|
|
|
+ uid = request_dict.get('uid', None)
|
|
|
+ serialNo = request_dict.get('serialNo', None)
|
|
|
+ comboId = request_dict.get('comboId', None)
|
|
|
+ if not all([username, serialNo or uid, comboId]):
|
|
|
+ return response.json(444)
|
|
|
+ try:
|
|
|
+ while transaction.atomic():
|
|
|
+ unicom_combo_qs = UnicomCombo.objects.filter(id=comboId, combo_type=2).values('combo_type')
|
|
|
+ if not unicom_combo_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ device_info_qs = Device_Info.objects.filter(userID__username=username).values('UID', 'serial_number',
|
|
|
+ 'userID_id')
|
|
|
+ if uid:
|
|
|
+ device_info_qs = device_info_qs.filter(UID=uid).values('userID_id')
|
|
|
+ user_id = device_info_qs[0]['userID_id']
|
|
|
+ device_info_qs = UnicomDeviceInfo.objects.filter(user_id=user_id).values('iccid', 'user_id',
|
|
|
+ 'serial_no')
|
|
|
+ elif serialNo:
|
|
|
+ device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serialNo).values('user_id', 'iccid',
|
|
|
+ 'serial_no')
|
|
|
+ if not device_info_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ n_time = int(time.time())
|
|
|
+ icc_id = device_info_qs[0]['iccid']
|
|
|
+ user_id = device_info_qs[0]['user_id']
|
|
|
+ serial_no = device_info_qs[0]['serial_no']
|
|
|
+ order_id = CommonService.createOrderID()
|
|
|
+ unicom_combo = UnicomComboView.create_combo_order_info(order_id=order_id, activate_type=1, iccid=icc_id,
|
|
|
+ combo_id=comboId)
|
|
|
+ if unicom_combo is False:
|
|
|
+ return '订单生成失败'
|
|
|
+ # 获取套餐信息
|
|
|
+ combo_info_qs = UnicomCombo.objects.filter(combo_type=2, status=0, is_del=False) \
|
|
|
+ .values('id', 'combo_name', 'price', 'virtual_price', 'remark').order_by('sort')
|
|
|
+ if not combo_info_qs.exists():
|
|
|
+ return False
|
|
|
+ combo_info_vo = combo_info_qs[0]
|
|
|
+ c_time = n_time
|
|
|
+ # 根据序列号获取UID
|
|
|
+ uid = CommonService.query_uid_with_serial(serial_no)
|
|
|
+ rank_id, ai_rank_id = UnicomComboView.get_cloud_or_ai_combo() # 生成订单必须添加该字段
|
|
|
+ order_dict = {'orderID': order_id, 'UID': uid, 'rank_id': rank_id, 'ai_rank_id': ai_rank_id,
|
|
|
+ 'userID_id': user_id, 'desc': combo_info_vo['combo_name'], 'payType': 10,
|
|
|
+ 'payTime': c_time, 'price': combo_info_vo['price'], 'addTime': c_time,
|
|
|
+ 'updTime': c_time, 'status': 1,
|
|
|
+ 'unify_combo_id': str(combo_info_vo['id']), 'order_type': 2,
|
|
|
+ 'store_meal_name': combo_info_vo['combo_name']
|
|
|
+ }
|
|
|
+ Order_Model.objects.create(**order_dict)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|