瀏覽代碼

新增查询智能场景列表,更新智能场景状态接口

locky 3 年之前
父節點
當前提交
4101a897ca
共有 1 個文件被更改,包括 53 次插入0 次删除
  1. 53 0
      Controller/SensorGateway/SmartSceneController.py

+ 53 - 0
Controller/SensorGateway/SmartSceneController.py

@@ -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))