Quellcode durchsuchen

增加异步删除推送消息

chenjunkai vor 6 Jahren
Ursprung
Commit
75c62a8e0c
4 geänderte Dateien mit 33 neuen und 13 gelöschten Zeilen
  1. 23 11
      Controller/EquipmentManager.py
  2. 1 1
      Controller/Test.py
  3. 1 1
      Object/TokenObject.py
  4. 8 0
      Service/ModelService.py

+ 23 - 11
Controller/EquipmentManager.py

@@ -1,10 +1,11 @@
 import re
 import time
 import traceback
+import threading
 
 import simplejson as json
 from django.utils import timezone
-from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidSetModel
+from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidSetModel, Equipment_Info
 from django.db.models import Q
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
@@ -147,7 +148,12 @@ def delUserEquipmentInterface(request):
     userID = tko.userID
     # 主用户删除设备全部删除
     try:
-        Device_Info.objects.filter(userID_id=userID, id=id).delete()
+        dv_qs = Device_Info.objects.filter(userID_id=userID, id=id)
+        if dv_qs.exists():
+            uid = dv_qs[0].UID
+            dv_qs.delete()
+            asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
+            asy.start()
     except Exception as e:
         errorInfo = traceback.format_exc()
         print('删除数据库记录错误: %s' % errorInfo)
@@ -538,16 +544,22 @@ def deleteInterface(request):
         return response.json(309)
     try:
         dv_qs = Device_Info.objects.filter(userID_id=userID, id=id)
-        uid = dv_qs[0].UID
-        if dv_qs[0].isShare:
-            dv_qs.delete()
+        if dv_qs.exists():
+            uid = dv_qs[0].UID
+            if dv_qs[0].isShare:
+                dv_qs.delete()
+            else:
+                # 主用户删除设备
+                dv_qs.delete()
+                # 分享获得用户假删除
+                ud_dv_qs = Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID)
+                if ud_dv_qs.exists():
+                    ud_dv_qs.update(isExist=0)
+                # 异步删除推送消息
+            asy = threading.Thread(target=ModelService.del_eq_info, args=(userID, uid))
+            asy.start()
         else:
-            # 主用户删除设备
-            dv_qs.delete()
-            # 分享获得用户假删除
-            ud_dv_qs = Device_Info.objects.filter(UID=uid, isShare=True, primaryUserID=userID)
-            if ud_dv_qs.exists():
-                ud_dv_qs.update(isExist=0)
+            return response.json(14)
     except Exception as e:
         errorInfo = traceback.format_exc()
         print('删除数据库记录错误: %s' % errorInfo)

+ 1 - 1
Controller/Test.py

@@ -71,7 +71,7 @@ class Test(View):
     def do_fcm_push(self, request):
         rg_id = request.GET.get('rg_id', '')
         serverKey = request.GET.get('serverKey', '')
-        push_type = request.GET.get('push_type', '')
+        push_type = request.GET.get('push_type', None)
         # Send to single device.
         from pyfcm import FCMNotification
 

+ 1 - 1
Object/TokenObject.py

@@ -21,7 +21,7 @@ class TokenObject:
 
     def __init__(self, token=None):
         if token == 'local':
-            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJtX2NvZGUiOiIxMjM0MTMyNDMyMTQiLCJleHAiOjE1NjQzMDc0MzZ9.xGTQTwcLvU4tH9pm45Y-nCi-P7wkWl-1EzsVKeudMhQ'
+            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJtX2NvZGUiOiIxMjM0MTMyNDMyMTQiLCJleHAiOjE1NjcyMzE5MzZ9.tCRQzNTSUH-4gdI26iQW13rSvsevOXEwLVs44Yx4LrE'
         if token == 'test':
             token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJ1c2VySUQiOiIxNTE1NjQyNjIzMzc5Mzk1MTM4MDAxMzgwMDEiLCJsYW5nIjoiZW4iLCJleHAiOjE1NTI2MTIxOTF9.sO8BtSclN6B-qwqNmYWbICatHYEtyMdoqzZ0hcOSsmg'
         self.token = token

+ 8 - 0
Service/ModelService.py

@@ -119,3 +119,11 @@ class ModelService:
         userID_list = Device_User.objects.filter(Q(username=username) | Q(userEmail=username) | Q(phone=username)). \
             values_list('userID', flat=True)
         return userID_list
+
+    @staticmethod
+    def del_eq_info(userID,uid):
+        ei_qs = Equipment_Info.objects.filter(userID_id=userID, devUid=uid)
+        ei_qs.delete()
+        # ei_count = ei_qs.count()
+        # while (ei_count > 1000):
+        #     ei_qs[0:1000].delete()