浏览代码

loocam场景日志查询设备类型

peng 2 年之前
父节点
当前提交
aad56581ed
共有 1 个文件被更改,包括 16 次插入12 次删除
  1. 16 12
      Controller/SensorGateway/SmartSceneController.py

+ 16 - 12
Controller/SensorGateway/SmartSceneController.py

@@ -777,9 +777,8 @@ class SmartSceneView(View):
         device_list = []
         sub_device_list = []
         if not device_id and not sub_device_id:
-            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id)
-            family_device_qs = family_room_device_qs.values('device', 'sub_device')
-            for device in family_device_qs:
+            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id).values('device', 'sub_device')
+            for device in family_room_device_qs:
                 if device['device'] not in device_list:
                     device_list.append(device['device'])
                 if device['sub_device']:
@@ -788,8 +787,11 @@ class SmartSceneView(View):
             family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, sub_device=sub_device_id)
             sub_device_list.append(sub_device_id)
         else:
-            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, device=device_id)
+            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, device=device_id).values(
+                'sub_device')
             device_list.append(device_id)
+            for device in family_room_device_qs:
+                sub_device_list.append(device['sub_device'])
         if not family_room_device_qs.exists():
             return response.json(173)
         try:
@@ -814,17 +816,17 @@ class SmartSceneView(View):
             for item in scene_log_qs:
                 if not device_id and not sub_device_id:
                     if not item['sub_device_id']:
-                        device_qs = Device_Info.objects.filter(id=device_id).values('Type')
+                        device_qs = Device_Info.objects.filter(id=item['device_id']).values('Type')
                         item['device_type'] = device_qs[0]['Type'] if device_qs.exists() else ''
                     else:
-                        device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('device_type')
+                        device_qs = GatewaySubDevice.objects.filter(id=item['sub_device_id']).values('device_type')
                         item['device_type'] = device_qs[0]['device_type'] if device_qs.exists() else ''
 
                 elif sub_device_id:
-                    device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('device_type')
+                    device_qs = GatewaySubDevice.objects.filter(id=item['sub_device_id']).values('device_type')
                     item['device_type'] = device_qs[0]['device_type'] if device_qs.exists() else ''
                 else:
-                    device_qs = Device_Info.objects.filter(id=device_id).values('Type')
+                    device_qs = Device_Info.objects.filter(id=item['device_id']).values('Type')
                     item['device_type'] = device_qs[0]['Type'] if device_qs.exists() else ''
                 item['tasks'] = eval(item['tasks'])
             return response.json(0, list(scene_log_qs))
@@ -851,9 +853,8 @@ class SmartSceneView(View):
         device_list = []
         sub_device_list = []
         if not device_id and not sub_device_id:
-            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id)
-            family_device_qs = family_room_device_qs.values('device', 'sub_device')
-            for device in family_device_qs:
+            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id).values('device', 'sub_device')
+            for device in family_room_device_qs:
                 if device['device'] not in device_list:
                     device_list.append(device['device'])
                 if device['sub_device']:
@@ -862,8 +863,11 @@ class SmartSceneView(View):
             family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, sub_device=sub_device_id)
             sub_device_list.append(sub_device_id)
         else:
-            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, device=device_id)
+            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, device=device_id).values(
+                'sub_device')
             device_list.append(device_id)
+            for device in family_room_device_qs:
+                sub_device_list.append(device['sub_device'])
         if not family_room_device_qs.exists():
             return response.json(173)