|
@@ -1,6 +1,7 @@
|
|
|
import datetime
|
|
|
import time
|
|
|
import oss2
|
|
|
+import requests
|
|
|
from django.contrib.auth.hashers import make_password, check_password # 对密码加密模块
|
|
|
from django.db import transaction
|
|
|
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 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 Model.models import Device_User, Role, UserExModel, CountryModel, MenuModel, FeedBackModel, StatResModel, \
|
|
|
SysMassModel, App_Info, SysMsgModel, DeviceSuperPassword, CustomizedPush, DeviceTypeModel
|
|
|
from Object.AWS.AmazonS3Util import AmazonS3Util
|
|
|
+from Object.ApschedulerObject import ApschedulerObject
|
|
|
from Object.RedisObject import RedisObject
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
@@ -983,18 +985,38 @@ class UserManagement(View):
|
|
|
file_key,
|
|
|
icon,
|
|
|
{'ContentType': icon.content_type, 'ACL': 'public-read'})
|
|
|
-
|
|
|
+ apscheduler = ApschedulerObject()
|
|
|
if is_edit: # 编辑
|
|
|
customized_push_id = request_dict.get('customizedPushId', None)
|
|
|
if not customized_push_id:
|
|
|
return response.json(444)
|
|
|
CustomizedPush.objects.filter(id=customized_push_id).update(**customized_push_data)
|
|
|
+ apscheduler.del_job('customizedPushId_{}'.format(customized_push_id)) # 删除旧定时任务
|
|
|
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)
|
|
|
except Exception as 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
|
|
|
def getCountryList(response):
|
|
|
try:
|