Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

locky 3 лет назад
Родитель
Сommit
4b7811510d
1 измененных файлов с 18 добавлено и 6 удалено
  1. 18 6
      Controller/ShadowController.py

+ 18 - 6
Controller/ShadowController.py

@@ -26,6 +26,7 @@ from AnsjerPush.config import SERVER_TYPE
 from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel, UID_Bucket, UidChannelSetModel, \
 from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel, UID_Bucket, UidChannelSetModel, \
     AiService
     AiService
 from Object.ETkObject import ETkObject
 from Object.ETkObject import ETkObject
+from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 
 
@@ -67,12 +68,23 @@ def update_device_shadow(request):
     else:
     else:
         return response.json(444)
         return response.json(444)
     logger = logging.getLogger('info')
     logger = logging.getLogger('info')
+    redis_obj = RedisObject(db=6)
     try:
     try:
-        etk = request_dict.get('etk', None)
-        eto = ETkObject(etk)
-        uid = eto.uid
-        if not uid:
-            return JsonResponse(status=200, data={'code': 403, 'msg': 'error etk'})
+        try:
+            etk = request_dict.get('etk', None)
+            shadow_key = 'PUSH:DEVICE:SHADOW:{}'.format(etk)
+            device_etk = redis_obj.get_data(key=shadow_key)
+            if device_etk:
+                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)
+            eto = ETkObject(etk)
+            uid = eto.uid
+            if not uid:
+                return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+        except Exception:
+            return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
+
         logger.info('使用配置: {}'.format(SERVER_TYPE))
         logger.info('使用配置: {}'.format(SERVER_TYPE))
         logger.info('data: {}'.format(request_dict.dict()))
         logger.info('data: {}'.format(request_dict.dict()))
 
 
@@ -195,4 +207,4 @@ def update_device_shadow(request):
             return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
             return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})
     except Exception as e:
     except Exception as e:
         logger.info('更新设备影子异常: {}'.format(repr(e)))
         logger.info('更新设备影子异常: {}'.format(repr(e)))
-        return JsonResponse(status=500, data={'update_shadow_error': repr(e)})
+        return JsonResponse(status=200, data={'code': 0, 'msg': 'success', 'data': {}})