Forráskód Böngészése

完善系统消息提醒

zhangdongming 3 éve
szülő
commit
6cbf9a47ed
1 módosított fájl, 56 hozzáadás és 8 törlés
  1. 56 8
      Controller/UnicomCombo/UnicomComboTaskController.py

+ 56 - 8
Controller/UnicomCombo/UnicomComboTaskController.py

@@ -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)))