소스 검색

Merge remote-tracking branch 'remotes/origin/Zhuo' into test

Ansjer 3 일 전
부모
커밋
4e317d9ca5
1개의 변경된 파일28개의 추가작업 그리고 1개의 파일을 삭제
  1. 28 1
      AdminController/DeviceManagementController.py

+ 28 - 1
AdminController/DeviceManagementController.py

@@ -127,6 +127,8 @@ class DeviceManagement(View):
                 return self.del_device_ver_info(request_dict, response)
             elif operation == 'syncDeviceVersion':  # 一键同步
                 return self.sync_device_version(request_dict, response)
+            elif operation == 'clearDeviceVersionCache':  # 清除设备型号版本缓存
+                return self.clear_device_version_cache(request_dict, response)
 
             # 设备语音设置
             elif operation == 'getDeviceVoice':  # 获取设备音频
@@ -2457,4 +2459,29 @@ class DeviceManagement(View):
                 'total_wake_sleep': aggregates.get('total_wake_sleep', 0)
             }
 
-        return response.json(0, data)
+        return response.json(0, data)
+
+    @classmethod
+    def clear_device_version_cache(cls, request_dict, response):
+        """清除设备版本的缓存"""
+        try:
+            redis = RedisObject()
+            ver_dcode_qs = DeviceVersionInfo.objects.values('software_ver', 'd_code')
+            del_count = 0
+
+            for info in ver_dcode_qs:
+                ver = info['software_ver']
+                d_code = info['d_code']
+                if not ver or not d_code:
+                    continue
+                cache_key = RedisKeyConstant.ZOSI_DEVICE_VERSION_INFO.value + ver + d_code
+                if redis.del_data(cache_key):
+                    del_count += 1
+
+            if del_count > 0:
+                return response.json(0, f'成功清除{del_count}个设备缓存')
+            else:
+                return response.json(0, '没有缓存需要清理')
+
+        except Exception as e:
+            return response.json(500, f'error_line:{e.__traceback__.tb_lineno}, error_msg:{str(e)}')