瀏覽代碼

优化退出登录推送

peng 11 月之前
父節點
當前提交
2c544adeed
共有 2 個文件被更改,包括 44 次插入10 次删除
  1. 39 6
      AnsjerPush/config.py
  2. 5 4
      Controller/TransparentTransmissionPushController.py

+ 39 - 6
AnsjerPush/config.py

@@ -211,17 +211,16 @@ EVENT_DICT = {
 
 # 小米推送通知类别id
 XM_PUSH_CHANNEL_ID = {
-    'push_to_talk': 111934,        # 一键通话
-    'device_reminder': 104551,     # 设备提醒
-    'service_reminder': 104552,    # 服务提醒
-    'sys_notification': 104553,    # 系统通知
-    'single_login': 126707         # 单点登录
+    'push_to_talk': 111934,  # 一键通话
+    'device_reminder': 104551,  # 设备提醒
+    'service_reminder': 104552,  # 服务提醒
+    'sys_notification': 104553,  # 系统通知
+    'single_login': 126707  # 单点登录
 }
 
 firebase_admin.initialize_app(credentials.Certificate(
     BASE_DIR + '/static/fcm/adcloud-fdf9b-firebase-adminsdk-dcvn1-d53e047cc8.json'))
 
-
 OCI_CONFIG = {
     'us': {
         'user': 'ocid1.user.oc1..aaaaaaaa63vtn64izdujrghlfby6xrlrrdce4yldtnjm7tmqzoc5i2b36s5q',
@@ -239,3 +238,37 @@ OCI_CONFIG = {
     }
 }
 OCI_NAMESPACE_NAME = 'cnmlmfa4fooi'
+
+APP_MAPPING = {
+    'ACCloud': ['com.ansjer.accloud', 'com.ansjer.accloud_a'],
+
+    'ADCloud': ['com.ansjer.adcloud', 'com.ansjer.adcloud_a'],
+
+    'ZosiSmart': ['com.ansjer.zccloud', 'com.ansjer.zccloud_a'],
+
+    'Loocam': ['com.ansjer.loocamccloud', 'com.ansjer.loocamccloud_a'],
+
+    'Anlapus': ['com.ansjer.zosidcloud', 'com.ansjer.zosidcloud_a'],
+
+    'Guardian_365': ['com.ansjer.customizeda', 'com.ansjer.customizeda_a'],
+
+    'COCOON_HD': ['com.ansjer.customizedb', 'com.ansjer.customizedb_a'],
+
+    'ZOSI': ['com.ansjer.customizede', 'com.ansjer.zccloud_ab'],
+
+    'DVS_Mobile': ['com.ansjer.customizedd', 'com.ansjer.customizedd_a'],
+
+    'Loocam_Home': ['com.ansjer.loocamhome', 'com.ansjer.loocamhome_a'],
+
+    'PatrolSecure': ['com.ansjer.customizedc', 'com.ansjer.customizedc_a'],
+
+    'VSees': ['com.cloudlife.commissionf', 'com.cloudlife.commissionf_a'],
+
+    'ZosiLink': ['com.ansjer.zosilink', 'com.ansjer.zosilink_a'],
+
+    'PTC': ['com.livecamera.cooperationh_a'],
+
+    'WinUser': ['WinUser'],
+    'MacUser': ['MacUser']
+
+}

+ 5 - 4
Controller/TransparentTransmissionPushController.py

@@ -12,7 +12,7 @@ from Model.models import UidPushModel, GatewayPush
 from Object.ResponseObject import ResponseObject
 from Service.HuaweiPushService.HuaweiPushService import HuaweiPushObject
 from Service.PushService import PushObject
-from AnsjerPush.config import XM_PUSH_CHANNEL_ID, HONORPUSH_CONFIG, LOGGER
+from AnsjerPush.config import XM_PUSH_CHANNEL_ID, HONORPUSH_CONFIG, LOGGER, APP_MAPPING
 import logging
 
 ERROR_INFO_LOGGER = logging.getLogger('error_info')
@@ -46,7 +46,8 @@ class TransparentTransmissionPushView(View):
         if not all([push_token, user_id, app_bundle_id]):
             return response.json(444)
         try:
-            uid_push_qs = GatewayPush.objects.filter(user_id=user_id, app_bundle_id=app_bundle_id,
+            app_bundle_list = APP_MAPPING.get(app_bundle_id, None)
+            uid_push_qs = GatewayPush.objects.filter(user_id=user_id, app_bundle_id__in=app_bundle_list,
                                                      logout=False).exclude(token_val=push_token).values('token_val',
                                                                                                         'push_type',
                                                                                                         'app_bundle_id',
@@ -60,9 +61,9 @@ class TransparentTransmissionPushView(View):
                                            args=(uid_push_list, user_id, '强制登出', '强制登出', 705))
             push_thread.start()
             # 删除推送信息
-            UidPushModel.objects.filter(userID=user_id, appBundleId=app_bundle_id).exclude(
+            UidPushModel.objects.filter(userID=user_id, appBundleId__in=app_bundle_list).exclude(
                 token_val=push_token).delete()
-            GatewayPush.objects.filter(user_id=user_id, app_bundle_id=app_bundle_id).exclude(
+            GatewayPush.objects.filter(user_id=user_id, app_bundle_id__in=app_bundle_list).exclude(
                 token_val=push_token).update(logout=True)
             return response.json(0)
         except Exception as e: