Browse Source

还原getInfo响应结果增加默认值

zhuojiaxuan 4 days ago
parent
commit
ced5882915
1 changed files with 9 additions and 25 deletions
  1. 9 25
      Controller/UserDevice/DeviceVersionInfoController.py

+ 9 - 25
Controller/UserDevice/DeviceVersionInfoController.py

@@ -128,13 +128,6 @@ class DeviceVersionInfoView(View):
             ver, d_code = version.rsplit('.', 1)  # 使用从右到左分割
             ver = ver.replace('V', '')  # 移除版本前的'V'
 
-            other_features_fields = [
-                'supports_lighting',
-                'is_support_multi_speed',
-                'supports_algorithm_switch',
-                'supports_playback_filtering'
-            ]
-
             # 创建Redis对象
             redis = RedisObject()
             # 构建Redis键
@@ -143,24 +136,8 @@ class DeviceVersionInfoView(View):
             # 尝试从Redis中获取数据
             version_info = redis.get_data(version_key)
             if version_info:
-                device_info = json.loads(version_info)
-                if not device_info.get("other_features"):
-                    device_info["other_features"] = {field: -1 for field in other_features_fields}
-                else:
-                    try:
-                        if isinstance(device_info["other_features"], str):
-                            device_info["other_features"] = json.loads(device_info["other_features"])
-
-                        for field in other_features_fields:
-                            if field not in device_info["other_features"] or device_info["other_features"][field] in (
-                                    None, ''):
-                                device_info["other_features"][field] = -1
-                    except json.JSONDecodeError:
-                        device_info["other_features"] = {field: -1 for field in other_features_fields}
-
-                # 更新Redis中的数据
-                redis.set_data(version_key, json.dumps(device_info), 60 * 60 * 24)  # 设置TTL为24小时
-                return response.json(0, device_info)
+                # 如果在Redis中找到了数据,直接返回
+                return response.json(0, json.loads(version_info))
 
             # 从数据库查询设备版本信息
             device_version_qs = DeviceVersionInfo.objects.filter(d_code=d_code, software_ver=ver).values()
@@ -171,6 +148,13 @@ class DeviceVersionInfoView(View):
             # 从QuerySet中获取设备信息
             device_info = device_version_qs.first()
 
+            other_features_fields = [
+                'supports_lighting',
+                'is_support_multi_speed',
+                'supports_algorithm_switch',
+                'supports_playback_filtering'
+            ]
+
             if not device_info.get("other_features"):
                 device_info["other_features"] = {field: -1 for field in other_features_fields}
             else: