|
@@ -39,6 +39,10 @@ class SmartSceneView(View):
|
|
|
return self.task_devices(request_dict, user_id, response)
|
|
|
elif operation == 'create': # 创建智能场景
|
|
|
return self.create_smart_scene(request_dict, user_id, response)
|
|
|
+ elif operation == 'scene-list': # 查询智能场景列表
|
|
|
+ return self.scene_list(request_dict, user_id, response)
|
|
|
+ elif operation == 'update-status': # 更新智能场景状态
|
|
|
+ return self.update_status(request_dict, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -167,3 +171,52 @@ class SmartSceneView(View):
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def scene_list(request_dict, user_id, response):
|
|
|
+ """
|
|
|
+ 查询智能场景列表
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @param user_id: 用户id
|
|
|
+ @request_dict deviceId: 网关设备id
|
|
|
+ @request_dict subDeviceId: 子设备id
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ device_id = request_dict.get('deviceId', None)
|
|
|
+ sub_device_id = request_dict.get('subDeviceId', None)
|
|
|
+
|
|
|
+ if not any([device_id, sub_device_id]):
|
|
|
+ return response.json(444, {'error param': 'deviceId or subDeviceId'})
|
|
|
+ try:
|
|
|
+ if device_id:
|
|
|
+ smart_scene_qs = SmartScene.objects.filter(user_id=user_id, device_id=device_id)
|
|
|
+ else:
|
|
|
+ smart_scene_qs = SmartScene.objects.filter(user_id=user_id, sub_device_id=sub_device_id)
|
|
|
+ if not smart_scene_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ smart_scene_qs = smart_scene_qs.values('id', 'scene_name', 'is_enable')
|
|
|
+ return response.json(0, list(smart_scene_qs))
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def update_status(request_dict, response):
|
|
|
+ """
|
|
|
+ 更新智能场景状态
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @request_dict smartSceneId: 智能场景id
|
|
|
+ @request_dict isEnable: 状态,True or False
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ smart_scene_id = request_dict.get('smartSceneId', None)
|
|
|
+ is_enable = request_dict.get('isEnable', None)
|
|
|
+
|
|
|
+ if not all([smart_scene_id, is_enable]):
|
|
|
+ return response.json(444, {'error param': 'smartSceneId and status'})
|
|
|
+ try:
|
|
|
+ SmartScene.objects.filter(id=smart_scene_id).update(is_enable=is_enable)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, repr(e))
|