peng vor 1 Jahr
Ursprung
Commit
c5ecdb5264
1 geänderte Dateien mit 12 neuen und 8 gelöschten Zeilen
  1. 12 8
      Controller/TransparentTransmissionPushController.py

+ 12 - 8
Controller/TransparentTransmissionPushController.py

@@ -8,7 +8,7 @@ import requests
 from django.http import HttpResponse
 from django.views import View
 
-from Model.models import UidPushModel
+from Model.models import UidPushModel, GatewayPush
 from Object.ResponseObject import ResponseObject
 from Service.PushService import PushObject
 from AnsjerPush.config import XM_PUSH_CHANNEL_ID, HONORPUSH_CONFIG, LOGGER
@@ -39,20 +39,24 @@ class TransparentTransmissionPushView(View):
         LOGGER.info('进入登出推送接口,参数:{}'.format(request_dict))
         push_token = request_dict.get('push_token', None)
         user_id = request_dict.get('user_id', None)
-        if not all([push_token, user_id]):
+        app_bundle_id = request_dict.get('app_bundle_id', None)
+        if not all([push_token, user_id, app_bundle_id]):
             return response.json(444)
         try:
-            uid_push_qs = UidPushModel.objects.filter(userID=user_id).exclude(token_val=push_token).values(
-                'token_val', 'appBundleId', 'push_type', 'jg_token_val').distinct().order_by('token_val')
+            uid_push_qs = UidPushModel.objects.filter(userID=user_id, appBundleId=app_bundle_id).exclude(
+                token_val=push_token).values('token_val', 'push_type', 'jg_token_val').distinct().order_by('token_val')
             if not uid_push_qs.exists():
                 return response.json(173)
             uid_push_list = list(uid_push_qs)
             LOGGER.info('{}推送列表:{}'.format(user_id, uid_push_list))
             push_thread = threading.Thread(target=TransparentTransmissionPushView.thread_push,
-                                           args=(uid_push_list, user_id, '强制登出', '强制登出', 705))
+                                           args=(uid_push_list, user_id, app_bundle_id, '强制登出', '强制登出', 705))
             push_thread.start()
             # 删除推送信息
-            UidPushModel.objects.filter(userID=user_id).exclude(token_val=push_token).delete()
+            UidPushModel.objects.filter(userID=user_id, appBundleId=app_bundle_id).exclude(
+                token_val=push_token).delete()
+            GatewayPush.objects.filter(user_id=user_id, app_bundle_id=app_bundle_id).exclude(
+                token_val=push_token).update(logout=True)
             return response.json(0)
         except Exception as e:
             return HttpResponse(repr(e), status=500)
@@ -75,12 +79,12 @@ class TransparentTransmissionPushView(View):
             return HttpResponse(repr(e), status=500)
 
     @staticmethod
-    def thread_push(qs, user_id, title, content, event_type):
+    def thread_push(qs, user_id, app_bundle_id, title, content, event_type):
         now_time = int(time.time())
         for push_item in qs:
             kwargs = {
                 'nickname': user_id,
-                'app_bundle_id': push_item['appBundleId'],
+                'app_bundle_id': app_bundle_id,
                 'token_val': push_item['token_val'],
                 'n_time': now_time,
                 'event_type': event_type,