Browse Source

优化返回数据结构体

zhangdongming 3 năm trước cách đây
mục cha
commit
ab0067037c
1 tập tin đã thay đổi với 13 bổ sung11 xóa
  1. 13 11
      Controller/SensorGateway/GatewayFamilyRoomController.py

+ 13 - 11
Controller/SensorGateway/GatewayFamilyRoomController.py

@@ -50,9 +50,9 @@ class GatewayFamilyRoomView(View):
         # 房间详情
         elif operation == 'details':
             return self.get_room_details(app_user_id, request_dict, response)
-        elif operation == 'all-devices':    # 家庭所有设备
+        elif operation == 'all-devices':  # 家庭所有设备
             return self.all_devices(request_dict, response)
-        elif operation == 'devices-sort':    # 家庭设备排序
+        elif operation == 'devices-sort':  # 家庭设备排序
             return self.devices_sort(request_dict, response)
         else:
             return response.json(414)
@@ -212,21 +212,23 @@ class GatewayFamilyRoomView(View):
         if not family_id:
             return response.json(444)
         try:
-            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, sub_device=0).\
-                annotate(type=F('device__Type'), nickname=F('device__NickName')).\
+            family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, sub_device=0). \
+                annotate(type=F('device__Type'), nickname=F('device__NickName')). \
                 values('device_id', 'type', 'nickname', 'room_id').order_by('sort')
             if not family_room_device_qs.exists():
                 return response.json(0, [])
+            device_room = []
             # 查询房间名称
             for device in family_room_device_qs:
                 room_id = device['room_id']
-                if room_id == 0:
-                    device['room'] = ''
-                else:
-                    family_room_qs = FamilyRoom.objects.filter(id=room_id).values('name')
-                    device['room'] = family_room_qs[0]['name'] if family_room_qs.exists() else ''
-                device.pop('room_id')
-            return response.json(0, list(family_room_device_qs))
+                room_name = FamilyRoom.objects.filter(id=room_id)
+                device_room.append({
+                    'deviceId': device['device_id'],
+                    'deviceType': device['type'],
+                    'nickName': device['nickname'],
+                    'roomName': room_name.first().name if room_name.exists() else '',
+                })
+            return response.json(0, device_room)
         except Exception as e:
             return response.json(500, repr(e))