|
@@ -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)}')
|