Pārlūkot izejas kodu

限制设备影子更新同一个UID每天请求一次

zhangdongming 3 gadi atpakaļ
vecāks
revīzija
05fec87e4c
1 mainītis faili ar 9 papildinājumiem un 1 dzēšanām
  1. 9 1
      Controller/ShadowController.py

+ 9 - 1
Controller/ShadowController.py

@@ -21,11 +21,12 @@ import time
 
 import requests
 from django.http import JsonResponse
-from ratelimit.decorators import ratelimit
+
 from AnsjerPush.config import SERVER_TYPE
 from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel, UID_Bucket, UidChannelSetModel, \
     AiService
 from Object.ETkObject import ETkObject
+from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
 
@@ -67,6 +68,7 @@ def update_device_shadow(request):
     else:
         return response.json(444)
     logger = logging.getLogger('info')
+    redis_obj = RedisObject(db=6)
     try:
         try:
             etk = request_dict.get('etk', None)
@@ -74,6 +76,12 @@ def update_device_shadow(request):
             uid = eto.uid
             if not uid:
                 return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+            shadow_key = 'PUSH:DEVICE:SHADOW:{}'.format(uid)
+            device_uid = redis_obj.get_data(key=shadow_key)
+            if device_uid:
+                return JsonResponse(status=200,
+                                    data={'code': 0, 'msg': 'The same UID is requested once a day', 'data': {}})
+            redis_obj.set_data(key=shadow_key, val=1, expire=3600 * 24)
         except Exception:
             return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})