|
@@ -52,6 +52,8 @@ class GatewayFamilyRoomView(View):
|
|
|
return self.get_room_details(app_user_id, request_dict, response)
|
|
|
elif operation == 'all-devices': # 家庭所有设备
|
|
|
return self.all_devices(request_dict, response)
|
|
|
+ elif operation == 'devices-sort': # 家庭设备排序
|
|
|
+ return self.devices_sort(request_dict, response)
|
|
|
|
|
|
@classmethod
|
|
|
def room_device_save(cls, app_user_id, request_dict, response):
|
|
@@ -212,7 +214,7 @@ class GatewayFamilyRoomView(View):
|
|
|
annotate(device_id=F('device__id'), 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)
|
|
|
+ return response.json(0, [])
|
|
|
# 查询房间名称
|
|
|
for device in family_room_device_qs:
|
|
|
room_id = device['room_id']
|
|
@@ -225,3 +227,25 @@ class GatewayFamilyRoomView(View):
|
|
|
return response.json(0, list(family_room_device_qs))
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def devices_sort(request_dict, response):
|
|
|
+ """
|
|
|
+ 家庭设备排序
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict 设备id: deviceIds
|
|
|
+ @param response: 响应参数
|
|
|
+ @return:
|
|
|
+ """
|
|
|
+ device_ids = request_dict.get('deviceIds', None)
|
|
|
+ if not device_ids:
|
|
|
+ return response.json(444)
|
|
|
+ try:
|
|
|
+ device_ids = device_ids.split(',')
|
|
|
+ with transaction.atomic():
|
|
|
+ for i, item in enumerate(device_ids):
|
|
|
+ device_id = int(item)
|
|
|
+ FamilyRoomDevice.objects.filter(device_id=device_id).update(sort=i)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, repr(e))
|