|
@@ -7,7 +7,7 @@
|
|
import time
|
|
import time
|
|
|
|
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
-from django.db.models import F
|
|
|
|
|
|
+from django.db.models import F, Q
|
|
from django.views import View
|
|
from django.views import View
|
|
|
|
|
|
from Model.models import FamilyRoomDevice, GatewaySubDevice, FamilyRoom, SmartScene, EffectiveTime, Device_Info
|
|
from Model.models import FamilyRoomDevice, GatewaySubDevice, FamilyRoom, SmartScene, EffectiveTime, Device_Info
|
|
@@ -107,40 +107,39 @@ class SmartSceneView(View):
|
|
if device_id:
|
|
if device_id:
|
|
res = cls.get_gateway_data(device_id)
|
|
res = cls.get_gateway_data(device_id)
|
|
else:
|
|
else:
|
|
- device_id_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('device_id', 'device_type')
|
|
|
|
- device_id = device_id_qs[0]['device_id']
|
|
|
|
- device_type = device_id_qs[0]['device_type']
|
|
|
|
|
|
+ sub_device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('device_id', 'device_type')
|
|
|
|
+ device_id = sub_device_qs[0]['device_id']
|
|
|
|
+ device_type = sub_device_qs[0]['device_type']
|
|
if device_type != 216:
|
|
if device_type != 216:
|
|
res = cls.get_gateway_data(device_id)
|
|
res = cls.get_gateway_data(device_id)
|
|
else:
|
|
else:
|
|
sub_device_list = []
|
|
sub_device_list = []
|
|
gateway_data = cls.get_gateway_data(device_id)
|
|
gateway_data = cls.get_gateway_data(device_id)
|
|
sub_device_list.append(gateway_data)
|
|
sub_device_list.append(gateway_data)
|
|
-
|
|
|
|
- gate_way = GatewaySubDevice.objects.filter(device_id=device_id).values('id', 'nickname', 'status',
|
|
|
|
- 'device_type')
|
|
|
|
-
|
|
|
|
- for gateway_sub_device in gate_way:
|
|
|
|
- device_type = gateway_sub_device['device_type']
|
|
|
|
- if device_type == 216:
|
|
|
|
- pass
|
|
|
|
- else:
|
|
|
|
- sub_device_id = gateway_sub_device['id']
|
|
|
|
- room_qs = FamilyRoomDevice.objects.filter(sub_device=sub_device_id).values('room_id')
|
|
|
|
- room_qs.exists()
|
|
|
|
- room_qs = room_qs.first()
|
|
|
|
- room_id = room_qs['room_id']
|
|
|
|
- room_id_qs = FamilyRoom.objects.filter(id=room_id).values('name')
|
|
|
|
- room_name = room_id_qs.first()['name'] if room_id_qs.exists() else ''
|
|
|
|
-
|
|
|
|
- try:
|
|
|
|
- if gate_way.exists():
|
|
|
|
- gateway_sub_device['room_name'] = FamilyRoom.objects.get(id=room_id).name
|
|
|
|
- except ObjectDoesNotExist:
|
|
|
|
- gateway_sub_device['room_name'] = room_name
|
|
|
|
- gateway_sub_device.pop('id')
|
|
|
|
- sub_device_list.append(gateway_sub_device)
|
|
|
|
- res = {'sub_device_list': sub_device_list}
|
|
|
|
|
|
+ sub_device_qs = GatewaySubDevice.objects.filter(
|
|
|
|
+ Q(device_id=device_id) & Q(device_type=215) | Q(device_type=219)).values('id', 'nickname',
|
|
|
|
+ 'status',
|
|
|
|
+ 'device_type')
|
|
|
|
+ sub_device_qs = sub_device_qs.annotate(gatewaySubId=F('id'),
|
|
|
|
+ deviceType=F('device_type'),
|
|
|
|
+ deviceNickName=F('nickname')). \
|
|
|
|
+ values('gatewaySubId', 'deviceType', 'deviceNickName', 'status')
|
|
|
|
+ for sub_device in sub_device_qs:
|
|
|
|
+ sub_device_id = sub_device['gatewaySubId']
|
|
|
|
+ room_qs = FamilyRoomDevice.objects.filter(sub_device=sub_device_id).values('room_id')
|
|
|
|
+ room_qs.exists()
|
|
|
|
+ room_qs = room_qs.first()
|
|
|
|
+ room_id = room_qs['room_id']
|
|
|
|
+ room_id_qs = FamilyRoom.objects.filter(id=room_id).values('name')
|
|
|
|
+ room_name = room_id_qs.first()['name'] if room_id_qs.exists() else ''
|
|
|
|
+ try:
|
|
|
|
+ if sub_device_qs.exists():
|
|
|
|
+ sub_device['roomName'] = FamilyRoom.objects.get(id=room_id).name
|
|
|
|
+ except ObjectDoesNotExist:
|
|
|
|
+ sub_device['roomName'] = room_name
|
|
|
|
+ sub_device.pop('id')
|
|
|
|
+ sub_device_list.append(sub_device)
|
|
|
|
+ res = sub_device_list
|
|
|
|
|
|
return response.json(0, res)
|
|
return response.json(0, res)
|
|
except Exception as e:
|
|
except Exception as e:
|