Эх сурвалжийг харах

Merge remote-tracking branch 'remotes/origin/peng' into test

Ansjer 1 жил өмнө
parent
commit
c2d69e055a

+ 25 - 3
AdminController/UserManageController.py

@@ -1,6 +1,7 @@
 import datetime
 import datetime
 import time
 import time
 import oss2
 import oss2
+import requests
 from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
 from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
 from django.db import transaction
 from django.db import transaction
 from django.db.models import Q
 from django.db.models import Q
@@ -10,11 +11,12 @@ from django.views.decorators.csrf import csrf_exempt
 from django.views.generic import TemplateView
 from django.views.generic import TemplateView
 
 
 from Ansjer.config import SERVER_DOMAIN, OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, AWS_ACCESS_KEY_ID, \
 from Ansjer.config import SERVER_DOMAIN, OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, AWS_ACCESS_KEY_ID, \
-    AWS_SECRET_ACCESS_KEY, AWS_SES_ACCESS_REGION
+    AWS_SECRET_ACCESS_KEY, AWS_SES_ACCESS_REGION, CONFIG_INFO, CONFIG_CN, CONFIG_US, CONFIG_EUR
 from Controller.CheckUserData import DataValid, RandomStr
 from Controller.CheckUserData import DataValid, RandomStr
 from Model.models import Device_User, Role, UserExModel, CountryModel, MenuModel, FeedBackModel, StatResModel, \
 from Model.models import Device_User, Role, UserExModel, CountryModel, MenuModel, FeedBackModel, StatResModel, \
     SysMassModel, App_Info, SysMsgModel, DeviceSuperPassword, CustomizedPush, DeviceTypeModel
     SysMassModel, App_Info, SysMsgModel, DeviceSuperPassword, CustomizedPush, DeviceTypeModel
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Object.AWS.AmazonS3Util import AmazonS3Util
+from Object.ApschedulerObject import ApschedulerObject
 from Object.RedisObject import RedisObject
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
@@ -983,18 +985,38 @@ class UserManagement(View):
                             file_key,
                             file_key,
                             icon,
                             icon,
                             {'ContentType': icon.content_type, 'ACL': 'public-read'})
                             {'ContentType': icon.content_type, 'ACL': 'public-read'})
-
+            apscheduler = ApschedulerObject()
             if is_edit:     # 编辑
             if is_edit:     # 编辑
                 customized_push_id = request_dict.get('customizedPushId', None)
                 customized_push_id = request_dict.get('customizedPushId', None)
                 if not customized_push_id:
                 if not customized_push_id:
                     return response.json(444)
                     return response.json(444)
                 CustomizedPush.objects.filter(id=customized_push_id).update(**customized_push_data)
                 CustomizedPush.objects.filter(id=customized_push_id).update(**customized_push_data)
+                apscheduler.del_job('customizedPushId_{}'.format(customized_push_id))  # 删除旧定时任务
             else:           # 新增
             else:           # 新增
-                CustomizedPush.objects.create(**customized_push_data)
+                customized_push = CustomizedPush.objects.create(**customized_push_data)
+                customized_push_id = customized_push.id
+            apscheduler.scheduler.add_job(UserManagement.cron_push_task, 'date',
+                                          run_date=datetime.datetime.fromtimestamp(push_timestamp),
+                                          replace_existing=True, id='customizedPushId_{}'.format(customized_push_id),
+                                          max_instances=1, coalesce=False, args=(customized_push_id,))
             return response.json(0)
             return response.json(0)
         except Exception as e:
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
 
+    @staticmethod
+    def cron_push_task(customized_push_id):
+        params = {'customized_push_id': customized_push_id}
+        print(params)
+        # if CONFIG_INFO == CONFIG_CN:
+        #     url = ''  # 国内推送地址
+        # elif CONFIG_INFO == CONFIG_US:
+        #     url = ''  # 美洲推送地址
+        # elif CONFIG_INFO == CONFIG_EUR:
+        #     url = ''  # 欧洲推送地址
+        # else:
+        #     url = ''  # 测试推送地址
+        # response = requests.get(url, params)
+
     @staticmethod
     @staticmethod
     def getCountryList(response):
     def getCountryList(response):
         try:
         try: