|
@@ -45,10 +45,155 @@ class UnicomComboView(View):
|
|
return self.get_order_info(request_dict, response)
|
|
return self.get_order_info(request_dict, response)
|
|
# 统计4G套餐
|
|
# 统计4G套餐
|
|
elif operation == 'getComboDataList':
|
|
elif operation == 'getComboDataList':
|
|
- return self.combo_order_list(request_dict, response)
|
|
|
|
|
|
+ return self.combo_list(request_dict, response)
|
|
# 删除卡套餐
|
|
# 删除卡套餐
|
|
elif operation == 'dele/combo/info':
|
|
elif operation == 'dele/combo/info':
|
|
- return self.dele_combo_info(request_dict, response)
|
|
|
|
|
|
+ return self.combo_order_info(request_dict, response)
|
|
|
|
+ # 筛选用户信息
|
|
|
|
+ elif operation == 'filter/user':
|
|
|
|
+ return self.get_user_info(request_dict, response)
|
|
|
|
+
|
|
|
|
+ def get_user_info(self, request_dict, response):
|
|
|
|
+ # print('request_dict: ', request_dict)
|
|
|
|
+
|
|
|
|
+ # Unicom_comborOrder表查询
|
|
|
|
+ status = request_dict.get('status', None)
|
|
|
|
+ payType = request_dict.get('payType', None)
|
|
|
|
+ price = request_dict.get('price', None)
|
|
|
|
+ addTimeRange = request_dict.get('addTimeRange', None)
|
|
|
|
+ endTimeRange = request_dict.get('endTimeRange', None)
|
|
|
|
+
|
|
|
|
+ # UnicomDevice_info表查询
|
|
|
|
+ iccid = request_dict.get('iccid', None)
|
|
|
|
+ serialNo = request_dict.get('serialNo', None)
|
|
|
|
+ userID = request_dict.get('userID', None)
|
|
|
|
+
|
|
|
|
+ # Device_user查询
|
|
|
|
+ phone = request_dict.get('phone', None)
|
|
|
|
+ userEmail = request_dict.get('userEmail', None)
|
|
|
|
+ dataJoined = request_dict.get('dataJoined', None)
|
|
|
|
+
|
|
|
|
+ pageNo = request_dict.get('pageNo', None)
|
|
|
|
+ pageSize = request_dict.get('pageSize', None)
|
|
|
|
+ if not all([pageNo, [pageSize]]):
|
|
|
|
+ return response.json(444)
|
|
|
|
+ page = int(pageNo)
|
|
|
|
+ line = int(pageSize)
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ unicom_device_qs = UnicomDeviceInfo.objects.all()
|
|
|
|
+ if iccid:
|
|
|
|
+ unicom_device_qs = unicom_device_qs.filter(iccid=iccid)
|
|
|
|
+ if serialNo:
|
|
|
|
+ unicom_device_qs = unicom_device_qs.filter(serial_no=serialNo)
|
|
|
|
+ if userID:
|
|
|
|
+ unicom_device_qs = unicom_device_qs.filter(user_id=userID)
|
|
|
|
+ # if addTimeRange:
|
|
|
|
+ # addStartTime, addEndTime = int(
|
|
|
|
+ # addTimeRange[0][:-3]), int(addTimeRange[1][:-3])
|
|
|
|
+ # unicom_combo_order_qs = unicom_combo_order_qs.filter(
|
|
|
|
+ # activation_time__gte=addStartTime,
|
|
|
|
+ # activation_time__lte=addEndTime)
|
|
|
|
+ # if endTimeRange:
|
|
|
|
+ # endStartTime, endEndTime = int(
|
|
|
|
+ # endTimeRange[0][:-3]), int(endTimeRange[1][:-3])
|
|
|
|
+ # unicom_combo_order_qs = unicom_combo_order_qs.filter(
|
|
|
|
+ # activation_time__gte=endStartTime,
|
|
|
|
+ # activation_time__lte=endEndTime)
|
|
|
|
+
|
|
|
|
+ userID_list = []
|
|
|
|
+ userID_set_dict = {}
|
|
|
|
+ if userID and userID != ['']:
|
|
|
|
+ device_user_qs = Device_User.objects.filter(user_id__in=userID).values('userID', 'phone', 'userEmail',
|
|
|
|
+ 'data_joined').distinct()
|
|
|
|
+ for device_user in device_user_qs:
|
|
|
|
+ userID_list.append(device_user['iccid'])
|
|
|
|
+ userID_set_dict[device_user['iccid']] = {
|
|
|
|
+ 'userID': device_user['user_id'],
|
|
|
|
+ 'phone': device_user['phone'],
|
|
|
|
+ 'userEmail': device_user['userEmail'],
|
|
|
|
+ 'dataJoined': device_user['data_joined'].strftime(
|
|
|
|
+ "%Y-%m-%d %H:%M:%S")
|
|
|
|
+ }
|
|
|
|
+ unicom_device_qs = unicom_device_qs.filter(iccid__in=userID_list)
|
|
|
|
+ else:
|
|
|
|
+ device_user_qs = Device_User.objects.filter().values('userID', 'phone', 'userEmail',
|
|
|
|
+ 'data_joined').distinct()
|
|
|
|
+ for device_user in device_user_qs:
|
|
|
|
+ userID_list.append(device_user['iccid'])
|
|
|
|
+ userID_set_dict[device_user['iccid']] = {
|
|
|
|
+ 'userID': device_user['user_id'],
|
|
|
|
+ 'phone': device_user['phone'],
|
|
|
|
+ 'userEmail': device_user['userEmail'],
|
|
|
|
+ 'dataJoined': device_user['dataJoined'].strftime(
|
|
|
|
+ "%Y-%m-%d %H:%M:%S")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if not unicom_device_qs.exists():
|
|
|
|
+ return response.json(0, [])
|
|
|
|
+
|
|
|
|
+ unicom_combo_order_qs = UnicomComboOrderInfo.objects.filter(
|
|
|
|
+ order_id__in=unicom_device_qs.values('iccid')).values('status', 'combo__pay_type', 'combo__price',
|
|
|
|
+ 'activation_time', 'expire_time')
|
|
|
|
+
|
|
|
|
+ if status or payType or addTimeRange or endTimeRange or price:
|
|
|
|
+ if status:
|
|
|
|
+ unicom_combo_order_qs = unicom_combo_order_qs.filter(status=status)
|
|
|
|
+ if payType:
|
|
|
|
+ unicom_combo_order_qs = unicom_combo_order_qs.filter(combo__pay_type=payType)
|
|
|
|
+ if price:
|
|
|
|
+ unicom_combo_order_qs = unicom_combo_order_qs.filter(combo__price=price)
|
|
|
|
+ if addTimeRange:
|
|
|
|
+ addStarTime, addEndTime = int(
|
|
|
|
+ addTimeRange[0][-3]), int(addTimeRange[1][:-3])
|
|
|
|
+ unicom_combo_order_qs = unicom_combo_order_qs.filter(
|
|
|
|
+ activation_time=addStarTime,
|
|
|
|
+ expire_time=addEndTime
|
|
|
|
+ )
|
|
|
|
+ if endTimeRange:
|
|
|
|
+ endStartTimem, endEndTiem = int(
|
|
|
|
+ endTimeRange[0][:-3]),int(endTimeRange[1][:-3])
|
|
|
|
+ unicom_combo_order_qs = unicom_combo_order_qs.filter(
|
|
|
|
+ activation_time=endStartTimem,
|
|
|
|
+ expire_time=endEndTiem)
|
|
|
|
+
|
|
|
|
+ list_data = []
|
|
|
|
+ count = unicom_device_qs.count()
|
|
|
|
+ unicom_device_qs = unicom_device_qs.order_by('-activation_time')[(page - 1) * line:page * line]
|
|
|
|
+
|
|
|
|
+ for unicom_device in unicom_device_qs:
|
|
|
|
+ endTime = time.strftime("%Y--%m--%d %H:%M:%S", time.localtime(unicom_device.endTime))
|
|
|
|
+
|
|
|
|
+ unicom = unicom_device.iccid.upper()
|
|
|
|
+ data = {
|
|
|
|
+ 'iccid':unicom_device.iccid,
|
|
|
|
+ 'serialNo':unicom_device.serial_no,
|
|
|
|
+ 'userID':unicom_device.user_id
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for unicom_combo_order in unicom_combo_order_qs.filter(
|
|
|
|
+ order_id=unicom_device.iccid).values('status', 'combo__pay_type', 'combo__price',
|
|
|
|
+ 'combo__combo_name', 'activation_time', 'expire_time'):
|
|
|
|
+ data['status'] = unicom_combo_order['status']
|
|
|
|
+ data['payType'] = unicom_combo_order['combo__pay_type']
|
|
|
|
+ data['price'] = unicom_combo_order['combo__price']
|
|
|
|
+ data['activationTime'] = unicom_combo_order['activation_time'].strftime(
|
|
|
|
+ "%Y-%m-%d %H:%M:%S")
|
|
|
|
+ data['expireTime'] = unicom_combo_order['expire_time'].strftime(
|
|
|
|
+ "%Y-%m-%d %H:%M:%S")
|
|
|
|
+ data['comboName'] = unicom_combo_order['combo__combo_name']
|
|
|
|
+
|
|
|
|
+ if userID in userID_set_dict:
|
|
|
|
+ data['userID'] = userID_set_dict['userID']
|
|
|
|
+ data['phone'] = userID_set_dict['phone']
|
|
|
|
+ data['userEmail'] = userID_set_dict['userEmail']
|
|
|
|
+ data['dataJoined'] = userID_set_dict['dataJoined']
|
|
|
|
+
|
|
|
|
+ list_data.append(data)
|
|
|
|
+ return response.json(0, {'list': list_data, 'total': count})
|
|
|
|
+ except Exception as e:
|
|
|
|
+ print(e)
|
|
|
|
+ return response.json(500, repr(e))
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
def get_user_combo(request_dict, response):
|
|
def get_user_combo(request_dict, response):
|
|
@@ -229,7 +374,7 @@ class UnicomComboView(View):
|
|
combo_list = []
|
|
combo_list = []
|
|
for item in combo_qs:
|
|
for item in combo_qs:
|
|
# 获取支付方式列表
|
|
# 获取支付方式列表
|
|
- pay_type_qs = Pay_Type.objects.filter(unicomcombo=item['id']).values('id', 'payment')
|
|
|
|
|
|
+ pay_type_list = [pay_type['id'] for pay_type in UnicomCombo.objects.get(id=item['id']).pay_type.values('id')]
|
|
combo_list.append({
|
|
combo_list.append({
|
|
'id': item['id'],
|
|
'id': item['id'],
|
|
'comboName': item['combo_name'],
|
|
'comboName': item['combo_name'],
|
|
@@ -238,7 +383,7 @@ class UnicomComboView(View):
|
|
'expirationType': item['expiration_type'],
|
|
'expirationType': item['expiration_type'],
|
|
'price': item['price'],
|
|
'price': item['price'],
|
|
'remark': item['remark'],
|
|
'remark': item['remark'],
|
|
- 'payTypes': list(pay_type_qs),
|
|
|
|
|
|
+ 'payTypes': pay_type_list,
|
|
})
|
|
})
|
|
return response.json(0, {'list': combo_list, 'total': total})
|
|
return response.json(0, {'list': combo_list, 'total': total})
|
|
except Exception as e:
|
|
except Exception as e:
|
|
@@ -264,10 +409,10 @@ class UnicomComboView(View):
|
|
return response.json(500, e)
|
|
return response.json(500, e)
|
|
|
|
|
|
@classmethod
|
|
@classmethod
|
|
- def dele_combo_info(cls, request_doct, response):
|
|
|
|
|
|
+ def combo_order_info(cls, request_doct, response):
|
|
pass
|
|
pass
|
|
|
|
|
|
- def combo_order_list(self, request_dict, response):
|
|
|
|
|
|
+ def combo_list(self, request_dict, response):
|
|
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")))
|
|
Feb = int(time.mktime(time.strptime(year + '-2-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
Feb = int(time.mktime(time.strptime(year + '-2-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|