瀏覽代碼

优化查询网关列表接口

zhangdongming 3 年之前
父節點
當前提交
77c2c30c02
共有 1 個文件被更改,包括 40 次插入36 次删除
  1. 40 36
      Controller/SensorGateway/GatewayDeviceController.py

+ 40 - 36
Controller/SensorGateway/GatewayDeviceController.py

@@ -91,15 +91,13 @@ class GatewayDeviceView(View):
         device_id = request_dict.get('deviceId')
         family_id = request_dict.get('familyId')
         # 1 删除网关 否则删除子设备
-        is_gateway = request_dict.get('isGateway', None)
         sub_ids = request_dict.get('subIds')
-        if not all([is_gateway, family_id]):
+        if not family_id:
             return response.json(444)
         permission = EquipmentFamilyView.get_member_permission_details(user_id, family_id)
         if not permission or permission == '003':
             return response.json(404)
-        is_gateway = int(is_gateway)
-        if is_gateway == 1 and device_id:
+        if device_id:
             family_device_qs = FamilyRoomDevice.objects.filter(device_id=device_id)
             if family_device_qs.exists():
                 family_device_qs.delete()
@@ -134,45 +132,51 @@ class GatewayDeviceView(View):
         device_qs = FamilyRoomDevice.objects.filter(device_id=device_id, sub_device=0)
         if not device_qs.exists():
             return response.json(173)
-        device_qs = device_qs.values('device_id', 'room_id', 'device__Type', 'device__NickName', 'device__UID',
-                                     'device__serial_number')
-        device_qs = device_qs.first()
-        room_id = device_qs['room_id']
-        gateway_room_name = ''
-        if room_id:
-            room_qs = FamilyRoom.objects.filter(id=room_id)
-            gateway_room_name = room_qs.first().name if room_qs.exists() else ''
-        gateway = {
-            'deviceId': device_qs['device_id'],
-            'deviceType': device_qs['device__Type'],
-            'deviceNickName': device_qs['device__NickName'],
-            'UID': device_qs['device__UID'],
-            'serialNumber': device_qs['device__serial_number'],
-            'roomName': gateway_room_name
-        }
-        family_device_qs = FamilyRoomDevice.objects.filter(device_id=device_id)
-        family_device_qs = family_device_qs.filter(~Q(sub_device=0)).order_by('-created_time')
-
-        sub_device = []
-        if family_device_qs.exists():
-            for item in family_device_qs:
-                sub_id = item['sub_device']
-                gateway_sub_qs = GatewaySubDevice.objects.filter(device_id=device_id, id=sub_id).values(
-                    'id', 'device_type',
-                    'nickname',
-                    'src_addr', 'status',
-                    'created_time', )
-                rood_id = item['rood_id']
-                room_qs = FamilyRoom.objects.filter(id=rood_id)
+        try:
+            device_qs = device_qs.values('device_id', 'room_id', 'device__Type', 'device__NickName', 'device__UID',
+                                         'device__serial_number')
+            device_qs = device_qs.first()
+            room_id = device_qs['room_id']
+            gateway_room_name = ''
+            if room_id:
+                room_qs = FamilyRoom.objects.filter(id=room_id)
                 gateway_room_name = room_qs.first().name if room_qs.exists() else ''
-                if device_qs.exists():
+            gateway = {
+                'deviceId': device_qs['device_id'],
+                'deviceType': device_qs['device__Type'],
+                'deviceNickName': device_qs['device__NickName'],
+                'UID': device_qs['device__UID'],
+                'serialNumber': device_qs['device__serial_number'],
+                'roomName': gateway_room_name
+            }
+            family_device_qs = FamilyRoomDevice.objects.filter(device_id=device_id)
+            family_device_qs = family_device_qs.filter(~Q(sub_device=0)).order_by('-created_time')
+
+            sub_device = []
+            if family_device_qs.exists():
+                family_device_qs = family_device_qs.values()
+                for item in family_device_qs:
+                    sub_id = item['sub_device']
+                    gateway_sub_qs = GatewaySubDevice.objects.filter(device_id=device_id, id=sub_id).values(
+                        'id', 'device_type',
+                        'nickname',
+                        'src_addr', 'status',
+                        'created_time', )
+                    room_id = item['room_id']
+                    room_qs = FamilyRoom.objects.filter(id=room_id)
+                    gateway_room_name = room_qs.first().name if room_qs.exists() else ''
                     gateway_sub_qs = gateway_sub_qs.first()
                     sub_device.append({
                         'gatewaySubId': gateway_sub_qs['id'],
                         'nickName': gateway_sub_qs['nickname'],
+                        'deviceType': gateway_sub_qs['device_type'],
                         'srcAddr': gateway_sub_qs['src_addr'],
                         'status': gateway_sub_qs['status'],
                         'createdTime': gateway_sub_qs['created_time'],
                         'roomName': gateway_room_name
                     })
-        return response.json(0, {'gateway': gateway, 'sub_device': sub_device})
+            return response.json(0, {'gateway': gateway, 'sub_device': sub_device})
+
+        except Exception as e:
+            print(e.args)
+            return response.json(500)