|
@@ -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,
|