Prechádzať zdrojové kódy

新增推送证书、不同地区删除相同用户和设备

peng 2 rokov pred
rodič
commit
fd907c9a3a

+ 3 - 0
Ansjer/cn_config/config_formal.py

@@ -134,5 +134,8 @@ APNS_CONFIG = {
     },
     },
     'com.ansjer.customizedc': {
     'com.ansjer.customizedc': {
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
+    },
+    'com.cloudlife.commissionf': {
+        'pem_path': 'Ansjer/file/apns_pem/commissionf.pem',
     }
     }
 }
 }

+ 3 - 0
Ansjer/cn_config/config_test.py

@@ -138,5 +138,8 @@ APNS_CONFIG = {
     },
     },
     'com.ansjer.customizedc': {
     'com.ansjer.customizedc': {
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
+    },
+    'com.cloudlife.commissionf': {
+        'pem_path': 'Ansjer/file/apns_pem/commissionf-dev.pem',
     }
     }
 }
 }

+ 3 - 0
Ansjer/eur_config/config_formal.py

@@ -134,5 +134,8 @@ APNS_CONFIG = {
     },
     },
     'com.ansjer.customizedc': {
     'com.ansjer.customizedc': {
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
+    },
+    'com.cloudlife.commissionf': {
+        'pem_path': 'Ansjer/file/apns_pem/commissionf.pem',
     }
     }
 }
 }

+ 3 - 0
Ansjer/local_config/config_local.py

@@ -78,4 +78,7 @@ APNS_CONFIG = {
     'com.ansjer.customizede': {
     'com.ansjer.customizede': {
         'pem_path': 'Ansjer/file/apns_pem/ZhouShi-dev.pem',
         'pem_path': 'Ansjer/file/apns_pem/ZhouShi-dev.pem',
     },
     },
+    'com.cloudlife.commissionf': {
+        'pem_path': 'Ansjer/file/apns_pem/commissionf-dev.pem',
+    }
 }
 }

+ 3 - 0
Ansjer/us_config/config_formal.py

@@ -134,5 +134,8 @@ APNS_CONFIG = {
     },
     },
     'com.ansjer.customizedc': {
     'com.ansjer.customizedc': {
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
         'pem_path': 'Ansjer/file/apns_pem/customizedc.pem',
+    },
+    'com.cloudlife.commissionf': {
+        'pem_path': 'Ansjer/file/apns_pem/commissionf.pem',
     }
     }
 }
 }

+ 2 - 43
Controller/DetectControllerV2.py

@@ -1,33 +1,15 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
-@AUTHOR: ASJRD018
-@NAME: AnsjerFormal
-@software: PyCharm
-@DATE: 2019/1/14 15:57
-@Version: python3.6
-@MODIFY DECORD:ansjer dev
-@file: DetectController.py
-@Contact: chanjunkai@163.com
-"""
 import json
 import json
-import os
 import time
 import time
 
 
-import apns2
 import boto3
 import boto3
 import botocore
 import botocore
-import jpush as jpush
 import oss2
 import oss2
 from botocore import client
 from botocore import client
 from django.http import JsonResponse
 from django.http import JsonResponse
 from django.views.generic.base import View
 from django.views.generic.base import View
-from pyfcm import FCMNotification
 
 
 from Ansjer.config import DETECT_PUSH_DOMAIN, DETECT_PUSH_DOMAINS, DETECT_PUSH_DOMAIN_JIUAN, DETECT_PUSH_DOMAINS_JIUAN, \
 from Ansjer.config import DETECT_PUSH_DOMAIN, DETECT_PUSH_DOMAINS, DETECT_PUSH_DOMAIN_JIUAN, DETECT_PUSH_DOMAINS_JIUAN, \
-    OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, \
-    JPUSH_CONFIG, FCM_CONFIG, APNS_CONFIG, BASE_DIR, APNS_MODE, SERVER_TYPE
+    OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
 from Ansjer.config import PUSH_REDIS_ADDRESS
 from Ansjer.config import PUSH_REDIS_ADDRESS
 from Model.models import Device_Info, VodHlsModel, Equipment_Info, UidSetModel, UidPushModel, CompanyModel, SysMsgModel, \
 from Model.models import Device_Info, VodHlsModel, Equipment_Info, UidSetModel, UidPushModel, CompanyModel, SysMsgModel, \
     AiService
     AiService
@@ -35,7 +17,6 @@ from Object.ETkObject import ETkObject
 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
-from Object.UidTokenObject import UidTokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 from Service.EquipmentInfoService import EquipmentInfoService
 from Service.EquipmentInfoService import EquipmentInfoService
 
 
@@ -68,7 +49,6 @@ class DetectControllerViewV2(View):
             userID = tko.userID
             userID = tko.userID
             # 修改推送设置
             # 修改推送设置
             if operation == 'changeStatus':
             if operation == 'changeStatus':
-                print("进入changeStatus")
                 return self.do_change_status(userID, request_dict, response)
                 return self.do_change_status(userID, request_dict, response)
             # 查询推送信息
             # 查询推送信息
             elif operation == 'queryInfo':
             elif operation == 'queryInfo':
@@ -89,11 +69,10 @@ class DetectControllerViewV2(View):
         status = request_dict.get('status', None)
         status = request_dict.get('status', None)
         m_code = request_dict.get('m_code', None)
         m_code = request_dict.get('m_code', None)
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
-        # 设备语言
         lang = request_dict.get('lang', 'en')
         lang = request_dict.get('lang', 'en')
         tz = request_dict.get('tz', '0')
         tz = request_dict.get('tz', '0')
         company_secrete = request_dict.get('company_secrete', None)
         company_secrete = request_dict.get('company_secrete', None)
-        region = request_dict.get('region', None)  # app必须传:2:国内 1:国外
+        region = request_dict.get('region', None)  # app必须传:1:国外,2:国内
         electricity_status = request_dict.get('electricity_status', None)
         electricity_status = request_dict.get('electricity_status', None)
         if not region:
         if not region:
             return response.json(444, 'region')
             return response.json(444, 'region')
@@ -117,22 +96,8 @@ class DetectControllerViewV2(View):
         # 关闭推送
         # 关闭推送
         if not all([appBundleId, app_type, token_val, uid, m_code]):
         if not all([appBundleId, app_type, token_val, uid, m_code]):
             return response.json(444, 'appBundleId,app_type,token_val,uid,m_code')
             return response.json(444, 'appBundleId,app_type,token_val,uid,m_code')
-        # 判断推送类型对应key是否存在
-        print('push_type:', push_type)
 
 
         try:
         try:
-            if push_type == '0':
-                if appBundleId not in APNS_CONFIG.keys():
-                    return response.json(904)
-            elif push_type == '1':
-                if appBundleId not in FCM_CONFIG.keys():
-                    return response.json(904)
-            elif push_type == '2':
-                if appBundleId not in JPUSH_CONFIG.keys():
-                    return response.json(904)
-            else:
-                return response.json(173)
-
             # 判断用户是否拥有设备
             # 判断用户是否拥有设备
             device_info_qs = Device_Info.objects.filter(userID_id=userID, UID=uid)
             device_info_qs = Device_Info.objects.filter(userID_id=userID, UID=uid)
             if not device_info_qs.exists():
             if not device_info_qs.exists():
@@ -227,7 +192,6 @@ class DetectControllerViewV2(View):
                     }
                     }
                     uid_push_qs.update(**uid_push_update_dict)
                     uid_push_qs.update(**uid_push_update_dict)
                 else:
                 else:
-                    # uid_set_id = uid_set_qs[0].id
                     uid_push_create_dict = {
                     uid_push_create_dict = {
                         'uid_set_id': uid_set_id,
                         'uid_set_id': uid_set_id,
                         'userID_id': userID,
                         'userID_id': userID,
@@ -248,9 +212,6 @@ class DetectControllerViewV2(View):
                     self.do_delete_redis(uid, interval)
                     self.do_delete_redis(uid, interval)
                 else:
                 else:
                     self.do_delete_redis(uid)
                     self.do_delete_redis(uid)
-                # utko = UidTokenObject()
-                # # right
-                # utko.generate(data={'uid': uid})
                 etkObj = ETkObject(etk='')
                 etkObj = ETkObject(etk='')
                 etk = etkObj.encrypt(uid)
                 etk = etkObj.encrypt(uid)
 
 
@@ -440,8 +401,6 @@ class DetectControllerViewV2(View):
             print(repr(e))
             print(repr(e))
             return response.json(474)
             return response.json(474)
 
 
-
-
     def do_update_interval(self, userID, request_dict, response):
     def do_update_interval(self, userID, request_dict, response):
         uid = request_dict.get('uid', None)
         uid = request_dict.get('uid', None)
         interval = request_dict.get('interval', None)
         interval = request_dict.get('interval', None)

+ 26 - 19
Controller/UserController.py

@@ -15,6 +15,7 @@ import base64
 import datetime
 import datetime
 import logging
 import logging
 import random
 import random
+import threading
 import time
 import time
 import traceback
 import traceback
 from io import BytesIO
 from io import BytesIO
@@ -37,7 +38,8 @@ from jwt.algorithms import RSAAlgorithm
 from ratelimit.decorators import ratelimit
 from ratelimit.decorators import ratelimit
 
 
 from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN
 from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN
-from Ansjer.config import BASE_DIR, CONFIG_US, CONFIG_EUR, CONFIG_INFO, SERVER_DOMAIN_US, SERVER_DOMAIN_EUR
+from Ansjer.config import BASE_DIR, CONFIG_US, CONFIG_EUR, CONFIG_INFO, SERVER_DOMAIN_US, SERVER_DOMAIN_EUR, CONFIG_CN, \
+    CONFIG_TEST, SERVER_DOMAIN_CN, SERVER_DOMAIN_TEST
 from Controller.CheckUserData import DataValid, date_handler, RandomStr
 from Controller.CheckUserData import DataValid, date_handler, RandomStr
 from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
 from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
     UserAppFrequencyModel, CountryIPModel, CountryModel, UidChannelSetModel, Order_Model, UID_Bucket, Unused_Uid_Meal, \
     UserAppFrequencyModel, CountryIPModel, CountryModel, UidChannelSetModel, Order_Model, UID_Bucket, Unused_Uid_Meal, \
@@ -685,6 +687,16 @@ class refreshTokenViewV3(TemplateView):
         request_dict = request.GET
         request_dict = request.GET
         return self.validation(request_dict)
         return self.validation(request_dict)
 
 
+    @staticmethod
+    def delete_user_and_device(user_id):
+        # 删除不同区域相同用户
+        data = {'userID': user_id}
+        url_list = CommonService.get_orders_domain_name_list()
+        if SERVER_DOMAIN_EUR in url_list:
+            url_list.remove(SERVER_DOMAIN_EUR)
+        for url in url_list:
+            requests.post(url=url+'v3/account/deleteUser', data=data, timeout=3)
+
     def validation(self, request_dict):
     def validation(self, request_dict):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         lang = request_dict.get('lang', None)
         lang = request_dict.get('lang', None)
@@ -705,15 +717,6 @@ class refreshTokenViewV3(TemplateView):
                 return response.json(tko.code)
                 return response.json(tko.code)
             userID = tko.userID
             userID = tko.userID
             tko.lang = lang
             tko.lang = lang
-
-            # 删除不同区域相同用户
-            headers = {'Authorization': token}
-            if CONFIG_INFO == CONFIG_US:
-                url = SERVER_DOMAIN_EUR + 'v3/account/deleteUser'
-                # requests.get(url=url, headers=headers)
-            elif CONFIG_INFO == CONFIG_EUR:
-                url = SERVER_DOMAIN_US + 'v3/account/deleteUser'
-                # requests.get(url=url, headers=headers)
             if password:  # 检验密码
             if password:  # 检验密码
                 password = password.strip()
                 password = password.strip()
                 # 解密
                 # 解密
@@ -737,6 +740,9 @@ class refreshTokenViewV3(TemplateView):
                     'region': lang
                     'region': lang
                 }
                 }
                 user_ex_qs.update(**update_dict)
                 user_ex_qs.update(**update_dict)
+            # 删除相同用户
+            request_thread = threading.Thread(target=self.delete_user_and_device, args=(userID,))
+            request_thread.start()
             return response.json(0, res)
             return response.json(0, res)
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)
@@ -1480,7 +1486,6 @@ class v2forgetPwdCodeView(TemplateView):
 
 
         return response.json(0, res)
         return response.json(0, res)
 
 
-
     def do_send_email_code(self, email, response, number, lang):
     def do_send_email_code(self, email, response, number, lang):
         data_valid = DataValid()
         data_valid = DataValid()
         if data_valid.email_validate(email) is not True:
         if data_valid.email_validate(email) is not True:
@@ -4347,11 +4352,13 @@ class DeleteUser(View):
         return self.validate(request, request_dict)
         return self.validate(request, request_dict)
 
 
     def validate(self, request, request_dict):
     def validate(self, request, request_dict):
-        token_code, user_id, response = CommonService.verify_token_get_user_id(request_dict, request)
-
-        if token_code != 0:
-            return response.json(token_code)
-        user_qs = Device_User.objects.filter(userID=user_id)
-        if user_qs.exists():
-            user_qs.delete()
-        return response.json(0)
+        response = ResponseObject('cn')
+        try:
+            user_id = request_dict.get('userID', None)
+            if not user_id:
+                return response.json(444)
+            Device_User.objects.filter(userID=user_id).delete()
+            Device_Info.objects.filter(userID=user_id).delete()
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, repr(e))