|
@@ -9,8 +9,12 @@ import time
|
|
from django.db import transaction
|
|
from django.db import transaction
|
|
from django.views.generic.base import View
|
|
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.UnicomObject import UnicomObjeect
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
|
|
+from Service.CommonService import CommonService
|
|
|
|
|
|
|
|
|
|
class UnicomManageControllerView(View):
|
|
class UnicomManageControllerView(View):
|
|
@@ -37,7 +41,7 @@ class UnicomManageControllerView(View):
|
|
# 添加和编辑卡套餐
|
|
# 添加和编辑卡套餐
|
|
elif operation == 'edit/combo':
|
|
elif operation == 'edit/combo':
|
|
return self.edit_combo(request_dict, response)
|
|
return self.edit_combo(request_dict, response)
|
|
- # 获取/筛选设备套餐订单信息
|
|
|
|
|
|
+ # 获取/筛选4G流量卡订单信息
|
|
elif operation == 'order/info':
|
|
elif operation == 'order/info':
|
|
return self.get_order_info(request_dict, response)
|
|
return self.get_order_info(request_dict, response)
|
|
# 统计4G套餐
|
|
# 统计4G套餐
|
|
@@ -49,6 +53,9 @@ class UnicomManageControllerView(View):
|
|
# 获取/筛选用户信息
|
|
# 获取/筛选用户信息
|
|
elif operation == 'filter/user':
|
|
elif operation == 'filter/user':
|
|
return self.get_user_info(request_dict, response)
|
|
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):
|
|
def get_user_info(self, request_dict, response):
|
|
"""
|
|
"""
|
|
@@ -109,7 +116,8 @@ class UnicomManageControllerView(View):
|
|
'createdTime': unicom_device.created_time,
|
|
'createdTime': unicom_device.created_time,
|
|
'updatedTime': unicom_device.updated_time
|
|
'updatedTime': unicom_device.updated_time
|
|
}
|
|
}
|
|
- device_user_qs = Device_User.objects.filter(userID=unicom_device.user_id).values('username', 'NickName', 'phone')
|
|
|
|
|
|
+ device_user_qs = Device_User.objects.filter(userID=unicom_device.user_id).values('username', 'NickName',
|
|
|
|
+ 'phone')
|
|
data['userName'] = device_user_qs[0]['username'] if device_user_qs.exists() else ''
|
|
data['userName'] = device_user_qs[0]['username'] if device_user_qs.exists() else ''
|
|
data['NickName'] = device_user_qs[0]['NickName'] if device_user_qs.exists() else ''
|
|
data['NickName'] = device_user_qs[0]['NickName'] if device_user_qs.exists() else ''
|
|
data['phone'] = device_user_qs[0]['phone'] if device_user_qs.exists() else ''
|
|
data['phone'] = device_user_qs[0]['phone'] if device_user_qs.exists() else ''
|
|
@@ -122,7 +130,7 @@ class UnicomManageControllerView(View):
|
|
@staticmethod
|
|
@staticmethod
|
|
def get_order_info(request_dict, response):
|
|
def get_order_info(request_dict, response):
|
|
"""
|
|
"""
|
|
- 获取/筛选设备套餐订单信息
|
|
|
|
|
|
+ 获取/筛选4G流量卡订单信息
|
|
@param request_dict:
|
|
@param request_dict:
|
|
@param response:
|
|
@param response:
|
|
@return:
|
|
@return:
|
|
@@ -141,7 +149,7 @@ class UnicomManageControllerView(View):
|
|
|
|
|
|
try:
|
|
try:
|
|
combo_order_info_qs = UnicomComboOrderInfo.objects.all()
|
|
combo_order_info_qs = UnicomComboOrderInfo.objects.all()
|
|
- # 筛选查询
|
|
|
|
|
|
+ # 序列号查询
|
|
if serial_no:
|
|
if serial_no:
|
|
unicom_device_qs = UnicomDeviceInfo.objects.filter(serial_no__icontains=serial_no).values('serial_no',
|
|
unicom_device_qs = UnicomDeviceInfo.objects.filter(serial_no__icontains=serial_no).values('serial_no',
|
|
'user_id',
|
|
'user_id',
|
|
@@ -149,6 +157,7 @@ class UnicomManageControllerView(View):
|
|
if not unicom_device_qs.exists():
|
|
if not unicom_device_qs.exists():
|
|
return response.json(0, [])
|
|
return response.json(0, [])
|
|
combo_order_info_qs = combo_order_info_qs.filter(iccid__icontains=unicom_device_qs[0]['iccid'])
|
|
combo_order_info_qs = combo_order_info_qs.filter(iccid__icontains=unicom_device_qs[0]['iccid'])
|
|
|
|
+ # UID查询
|
|
if UID:
|
|
if UID:
|
|
device_qs = Device_Info.objects.filter(UID=UID).values('serial_number').distinct()
|
|
device_qs = Device_Info.objects.filter(UID=UID).values('serial_number').distinct()
|
|
if not device_qs.exists():
|
|
if not device_qs.exists():
|
|
@@ -158,6 +167,7 @@ class UnicomManageControllerView(View):
|
|
if not unicom_device_qs.exists():
|
|
if not unicom_device_qs.exists():
|
|
return response.json(0, [])
|
|
return response.json(0, [])
|
|
combo_order_info_qs = combo_order_info_qs.filter(iccid__icontains=unicom_device_qs[0]['iccid'])
|
|
combo_order_info_qs = combo_order_info_qs.filter(iccid__icontains=unicom_device_qs[0]['iccid'])
|
|
|
|
+ # 状态查询
|
|
if status:
|
|
if status:
|
|
status = int(status)
|
|
status = int(status)
|
|
combo_order_info_qs = combo_order_info_qs.filter(status=status)
|
|
combo_order_info_qs = combo_order_info_qs.filter(status=status)
|
|
@@ -168,7 +178,7 @@ class UnicomManageControllerView(View):
|
|
data_list = []
|
|
data_list = []
|
|
for combo_order in combo_order_info_qs:
|
|
for combo_order in combo_order_info_qs:
|
|
data = {'userName': '',
|
|
data = {'userName': '',
|
|
- 'serialNo': '',
|
|
|
|
|
|
+ 'UID': '',
|
|
'iccid': combo_order.iccid,
|
|
'iccid': combo_order.iccid,
|
|
'status': combo_order.status,
|
|
'status': combo_order.status,
|
|
'order_id': combo_order.order_id,
|
|
'order_id': combo_order.order_id,
|
|
@@ -178,18 +188,28 @@ class UnicomManageControllerView(View):
|
|
'expireTime': combo_order.expire_time,
|
|
'expireTime': combo_order.expire_time,
|
|
'createdTime': combo_order.created_time,
|
|
'createdTime': combo_order.created_time,
|
|
'updated_time': combo_order.updated_time}
|
|
'updated_time': combo_order.updated_time}
|
|
- unicom_combo_qs = UnicomCombo.objects.filter(id=combo_order.combo_id).values('combo_name')
|
|
|
|
|
|
+ unicom_combo_qs = UnicomCombo.objects.filter(id=combo_order.combo_id).values('combo_name', 'price')
|
|
|
|
+ data['price'] = unicom_combo_qs[0]['price'] if unicom_combo_qs.exists() else ''
|
|
data['comboName'] = unicom_combo_qs[0]['combo_name'] if unicom_combo_qs.exists() else ''
|
|
data['comboName'] = unicom_combo_qs[0]['combo_name'] if unicom_combo_qs.exists() else ''
|
|
unicom_device_qs = UnicomDeviceInfo.objects.filter(iccid__icontains=combo_order.iccid).values('user_id',
|
|
unicom_device_qs = UnicomDeviceInfo.objects.filter(iccid__icontains=combo_order.iccid).values('user_id',
|
|
'serial_no')
|
|
'serial_no')
|
|
userID = unicom_device_qs[0]['user_id'] if unicom_device_qs.exists() else ''
|
|
userID = unicom_device_qs[0]['user_id'] if unicom_device_qs.exists() else ''
|
|
- device_user = Device_User.objects.filter(userID=userID).values('username')
|
|
|
|
- if device_user.exists():
|
|
|
|
- nick_name = device_user[0]['username']
|
|
|
|
- data['userName'] = nick_name
|
|
|
|
data['serialNo'] = unicom_device_qs[0]['serial_no'] if unicom_device_qs.exists() else ''
|
|
data['serialNo'] = unicom_device_qs[0]['serial_no'] if unicom_device_qs.exists() else ''
|
|
- device_qs = Device_Info.objects.filter(serial_number=unicom_device_qs[0]['serial_no']).values('UID')
|
|
|
|
- data['UID'] = device_qs[0]['UID'] if device_qs.exists() else ''
|
|
|
|
|
|
+ serial_no = data['serialNo']
|
|
|
|
+ device_info_qs = Device_Info.objects.filter(userID__userID=userID, serial_number=serial_no).values(
|
|
|
|
+ 'userID__username', 'UID')
|
|
|
|
+ if device_info_qs.exists():
|
|
|
|
+ nick_name = device_info_qs[0]['userID__username']
|
|
|
|
+ data['userName'] = nick_name
|
|
|
|
+ if data['serialNo'] != '':
|
|
|
|
+ data['UID'] = CommonService.query_serial_with_uid(data['serialNo'])
|
|
|
|
+ if combo_order.status == 1:
|
|
|
|
+ total_flow = UnicomObjeect.current_sim_traffic_usage_details(combo_order.iccid) # 4G总值
|
|
|
|
+ flow_total_usage = combo_order.flow_total_usage # 激活时当月已用流量
|
|
|
|
+ flow_total_usage = float(flow_total_usage)
|
|
|
|
+ data['using_total'] = total_flow - flow_total_usage
|
|
|
|
+ else:
|
|
|
|
+ data['using_total'] = 0
|
|
data_list.append(data)
|
|
data_list.append(data)
|
|
return response.json(0, {'list': data_list, 'total': total})
|
|
return response.json(0, {'list': data_list, 'total': total})
|
|
except Exception as e:
|
|
except Exception as e:
|
|
@@ -366,9 +386,9 @@ class UnicomManageControllerView(View):
|
|
def static_info(self, request_dict, response):
|
|
def static_info(self, request_dict, response):
|
|
"""
|
|
"""
|
|
统计联通套餐
|
|
统计联通套餐
|
|
- @param request_dict:
|
|
|
|
- @param response:
|
|
|
|
- @return:
|
|
|
|
|
|
+ @param request_dict:请求参数
|
|
|
|
+ @param response: 响应对象
|
|
|
|
+ @param return:
|
|
"""
|
|
"""
|
|
year = request_dict.get('year', None)
|
|
year = request_dict.get('year', None)
|
|
Jan = int(time.mktime(time.strptime(year + '-1-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
Jan = int(time.mktime(time.strptime(year + '-1-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
@@ -422,3 +442,57 @@ class UnicomManageControllerView(View):
|
|
except Exception as e:
|
|
except Exception as e:
|
|
print(e)
|
|
print(e)
|
|
return response.json(500, repr(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:
|
|
|
|
+ """
|
|
|
|
+ userId = request_dict.get('userId', None)
|
|
|
|
+ serialNo = request_dict.get('serialNo', None)
|
|
|
|
+ comboId = request_dict.get('comboId', None)
|
|
|
|
+ if not all([userId, serialNo, comboId]):
|
|
|
|
+ return response.json(444)
|
|
|
|
+ try:
|
|
|
|
+ while transaction.atomic():
|
|
|
|
+ combo_info_qs = UnicomCombo.objects.filter(id=comboId, combo_type=2, status=0, is_del=False) \
|
|
|
|
+ .values('id', 'combo_name', 'price', 'virtual_price', 'remark', 'combo_type').order_by('sort')
|
|
|
|
+ if not combo_info_qs.exists():
|
|
|
|
+ return response.json(173)
|
|
|
|
+
|
|
|
|
+ unicom_device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=serialNo, user_id=userId).values \
|
|
|
|
+ ('user_id', 'iccid', 'serial_no')
|
|
|
|
+ if not unicom_device_info_qs.exists():
|
|
|
|
+ return response.json(173)
|
|
|
|
+ n_time = int(time.time())
|
|
|
|
+ icc_id = unicom_device_info_qs[0]['iccid']
|
|
|
|
+ serial_no = unicom_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 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': userId, '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))
|