|
@@ -8,6 +8,7 @@
|
|
"""
|
|
"""
|
|
import datetime
|
|
import datetime
|
|
import logging
|
|
import logging
|
|
|
|
+import threading
|
|
import time
|
|
import time
|
|
from decimal import Decimal
|
|
from decimal import Decimal
|
|
|
|
|
|
@@ -15,10 +16,12 @@ from django.db import transaction
|
|
from django.db.models import Q
|
|
from django.db.models import Q
|
|
from django.views import View
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import UnicomComboOrderInfo, UnicomCombo, Order_Model, UnicomDeviceInfo, UnicomFlowPush
|
|
|
|
|
|
+from Model.models import UnicomComboOrderInfo, UnicomCombo, Order_Model, UnicomDeviceInfo, UnicomFlowPush, SysMsgModel
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.UnicomObject import UnicomObjeect
|
|
from Object.UnicomObject import UnicomObjeect
|
|
|
|
|
|
|
|
+logger = logging.getLogger('info')
|
|
|
|
+
|
|
|
|
|
|
class UnicomComboTaskView(View):
|
|
class UnicomComboTaskView(View):
|
|
|
|
|
|
@@ -56,7 +59,6 @@ class UnicomComboTaskView(View):
|
|
@param response:
|
|
@param response:
|
|
@return:
|
|
@return:
|
|
"""
|
|
"""
|
|
- logger = logging.getLogger('info')
|
|
|
|
print(request_dict)
|
|
print(request_dict)
|
|
logger.info('--->进入监控次月激活联通套餐')
|
|
logger.info('--->进入监控次月激活联通套餐')
|
|
now_time = int(time.time())
|
|
now_time = int(time.time())
|
|
@@ -106,7 +108,6 @@ class UnicomComboTaskView(View):
|
|
检查流量使用情况
|
|
检查流量使用情况
|
|
@return:
|
|
@return:
|
|
"""
|
|
"""
|
|
- logger = logging.getLogger('info')
|
|
|
|
logger.info('--->进入监控流量使用情况')
|
|
logger.info('--->进入监控流量使用情况')
|
|
try:
|
|
try:
|
|
unicom_api = UnicomObjeect()
|
|
unicom_api = UnicomObjeect()
|
|
@@ -171,7 +172,6 @@ class UnicomComboTaskView(View):
|
|
@param flow_usage: 套餐已使用流量
|
|
@param flow_usage: 套餐已使用流量
|
|
@return:
|
|
@return:
|
|
"""
|
|
"""
|
|
- logger = logging.getLogger('info')
|
|
|
|
try:
|
|
try:
|
|
if not app_user_id:
|
|
if not app_user_id:
|
|
return False
|
|
return False
|
|
@@ -204,7 +204,6 @@ class UnicomComboTaskView(View):
|
|
@param usage_flow:
|
|
@param usage_flow:
|
|
@return:
|
|
@return:
|
|
"""
|
|
"""
|
|
- logger = logging.getLogger('info')
|
|
|
|
try:
|
|
try:
|
|
now_time = int(time.time())
|
|
now_time = int(time.time())
|
|
combo_order_qs = UnicomComboOrderInfo.objects \
|
|
combo_order_qs = UnicomComboOrderInfo.objects \
|
|
@@ -224,12 +223,20 @@ class UnicomComboTaskView(View):
|
|
'year': year,
|
|
'year': year,
|
|
'month': month,
|
|
'month': month,
|
|
'flow_total_usage': str(usage_flow),
|
|
'flow_total_usage': str(usage_flow),
|
|
|
|
+ 'activation_time': now_time,
|
|
'updated_time': now_time,
|
|
'updated_time': now_time,
|
|
}
|
|
}
|
|
UnicomComboOrderInfo.objects.filter(id=combo_order.id).update(**upd_data)
|
|
UnicomComboOrderInfo.objects.filter(id=combo_order.id).update(**upd_data)
|
|
|
|
+ ud_info_qs = UnicomDeviceInfo.objects.filter(iccid=iccid)
|
|
|
|
+ if ud_info_qs.exists():
|
|
|
|
+ ud_info = ud_info_qs.first()
|
|
|
|
+ sys_msg_text = UnicomComboTaskView.get_sys_msg_text(ud_info.user_id, combo_order.combo.combo_name, 2)
|
|
|
|
+ asy = threading.Thread(target=UnicomComboTaskView.async_sys_msg_save,
|
|
|
|
+ args=(ud_info.user_id, ud_info.serial_no, sys_msg_text))
|
|
|
|
+ asy.start()
|
|
return True
|
|
return True
|
|
except Exception as e:
|
|
except Exception as e:
|
|
- logger.info('出错了~检测流量用量详情异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
|
|
|
+ logger.info('出错了~激活套餐,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
return False
|
|
return False
|
|
|
|
|
|
@classmethod
|
|
@classmethod
|
|
@@ -239,7 +246,6 @@ class UnicomComboTaskView(View):
|
|
@param response:
|
|
@param response:
|
|
@return:
|
|
@return:
|
|
"""
|
|
"""
|
|
- logger = logging.getLogger('info')
|
|
|
|
logger.info('--->进入监控流量到期停卡或激活叠加包')
|
|
logger.info('--->进入监控流量到期停卡或激活叠加包')
|
|
now_time = int(time.time())
|
|
now_time = int(time.time())
|
|
combo_order_qs = UnicomComboOrderInfo.objects.filter(~Q(status=2), expire_time__lte=now_time,
|
|
combo_order_qs = UnicomComboOrderInfo.objects.filter(~Q(status=2), expire_time__lte=now_time,
|
|
@@ -257,7 +263,7 @@ class UnicomComboTaskView(View):
|
|
um_device_qs = UnicomDeviceInfo.objects.filter(iccid=icc_id)
|
|
um_device_qs = UnicomDeviceInfo.objects.filter(iccid=icc_id)
|
|
if not um_device_qs.exists():
|
|
if not um_device_qs.exists():
|
|
continue
|
|
continue
|
|
- UnicomComboOrderInfo.objects.filter(id=item['id']).update(status=2)
|
|
|
|
|
|
+ UnicomComboOrderInfo.objects.filter(id=item['id']).update(status=2, updated_time=now_time)
|
|
iccid_list.append(icc_id)
|
|
iccid_list.append(icc_id)
|
|
logger.info('--->当前流量套餐已过期,iccid:{}'.format(icc_id))
|
|
logger.info('--->当前流量套餐已过期,iccid:{}'.format(icc_id))
|
|
except Exception as e:
|
|
except Exception as e:
|
|
@@ -276,6 +282,48 @@ class UnicomComboTaskView(View):
|
|
if not result:
|
|
if not result:
|
|
# 停用设备
|
|
# 停用设备
|
|
unicom_api.change_device_to_disable(item)
|
|
unicom_api.change_device_to_disable(item)
|
|
|
|
+ combo_order_info_qs = UnicomComboOrderInfo.objects.filter(iccid=item, status=2) \
|
|
|
|
+ .values('combo__combo_name').order_by('-updated_time')
|
|
|
|
+ ud_info_qs = UnicomDeviceInfo.objects.filter(iccid=item)
|
|
|
|
+ combo_order = combo_order_info_qs.first()
|
|
|
|
+ if ud_info_qs.exists():
|
|
|
|
+ ud_info = ud_info_qs.first()
|
|
|
|
+ sys_msg_text = UnicomComboTaskView.get_sys_msg_text(ud_info.user_id,
|
|
|
|
+ combo_order['combo__combo_name'], 1)
|
|
|
|
+ asy = threading.Thread(target=UnicomComboTaskView.async_sys_msg_save,
|
|
|
|
+ args=(ud_info.user_id, ud_info.serial_no, sys_msg_text))
|
|
|
|
+ asy.start()
|
|
else:
|
|
else:
|
|
unicom_api.change_device_to_activate(item)
|
|
unicom_api.change_device_to_activate(item)
|
|
return response.json(0)
|
|
return response.json(0)
|
|
|
|
+
|
|
|
|
+ @staticmethod
|
|
|
|
+ def get_sys_msg_text(serial_no, combo_name, sys_type):
|
|
|
|
+ """
|
|
|
|
+ 获取系统消息文本
|
|
|
|
+ @return:
|
|
|
|
+ """
|
|
|
|
+ if sys_type == 1:
|
|
|
|
+ sys_msg_text = "温馨提示:尊敬的客户,您" + serial_no + "设备当前4G" + combo_name + "已到期"
|
|
|
|
+ elif sys_type == 2:
|
|
|
|
+ sys_msg_text = "温馨提示:尊敬的客户,您" + serial_no + "设备当前4G" + combo_name + "已激活"
|
|
|
|
+ else:
|
|
|
|
+ sys_msg_text = "温馨提示:尊敬的客户,您" + serial_no + "设备当前4G" + combo_name + "已用完"
|
|
|
|
+ return sys_msg_text
|
|
|
|
+
|
|
|
|
+ @staticmethod
|
|
|
|
+ def async_sys_msg_save(user_id, serial_no, sys_msg_text):
|
|
|
|
+ """
|
|
|
|
+ 异步系统消息保存
|
|
|
|
+ @param user_id: 用户id
|
|
|
|
+ @param sys_msg_text: 系统消息文本
|
|
|
|
+ @param serial_no: 序列号
|
|
|
|
+ @return: None
|
|
|
|
+ """
|
|
|
|
+ now_time = int(time.time())
|
|
|
|
+ try:
|
|
|
|
+ data = {'addTime': now_time, 'updTime': now_time, 'userID_id': user_id, 'eventType': 0, 'msg': sys_msg_text,
|
|
|
|
+ 'uid': serial_no}
|
|
|
|
+ SysMsgModel.objects.create(**data)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ print('出错了~异步保存配置信息错误,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|