Selaa lähdekoodia

修改device_id字段,完善创建智能场景接口

locky 3 vuotta sitten
vanhempi
commit
e15880d025
2 muutettua tiedostoa jossa 22 lisäystä ja 7 poistoa
  1. 21 6
      Controller/SensorGateway/SmartSceneController.py
  2. 1 1
      Model/models.py

+ 21 - 6
Controller/SensorGateway/SmartSceneController.py

@@ -55,7 +55,7 @@ class SmartSceneView(View):
         device_id = request_dict.get('deviceId', None)
         device_id = request_dict.get('deviceId', None)
         sub_device_id = request_dict.get('subDeviceId', None)
         sub_device_id = request_dict.get('subDeviceId', None)
         if not any([device_id, sub_device_id]):
         if not any([device_id, sub_device_id]):
-            return response.json(444)
+            return response.json(444, {'error param': 'deviceId or subDeviceId'})
         try:
         try:
             if device_id:
             if device_id:
                 gateway_sub_device_qs = GatewaySubDevice.objects.filter(device_id=device_id)
                 gateway_sub_device_qs = GatewaySubDevice.objects.filter(device_id=device_id)
@@ -108,19 +108,34 @@ class SmartSceneView(View):
         @param response: 响应对象
         @param response: 响应对象
         @return: response
         @return: response
         """
         """
+        device_id = request_dict.get('deviceId', None)
         sub_device_id = request_dict.get('gatewaySubId', None)
         sub_device_id = request_dict.get('gatewaySubId', None)
         scene_name = request_dict.get('sceneName', None)
         scene_name = request_dict.get('sceneName', None)
         conditions = request_dict.get('conditions', None)
         conditions = request_dict.get('conditions', None)
         tasks = request_dict.get('tasks', None)
         tasks = request_dict.get('tasks', None)
         all_day = request_dict.get('allDay', None)
         all_day = request_dict.get('allDay', None)
 
 
-        if not all([sub_device_id, conditions, tasks]):
+        if not any([device_id, sub_device_id]):
+            return response.json(444, {'error param': 'deviceId or subDeviceId'})
+        if not all([conditions, tasks]):
             return response.json(444)
             return response.json(444)
+
         now_time = int(time.time())
         now_time = int(time.time())
         try:
         try:
+            smart_scene_dict = {
+                'user_id': user_id,
+                'scene_name': scene_name,
+                'conditions': conditions,
+                'tasks': tasks,
+                'created_time': now_time,
+                'updated_time': now_time,
+            }
+            if device_id:
+                smart_scene_dict['device_id'] = device_id
+            else:
+                smart_scene_dict['sub_device_id'] = sub_device_id
             if all_day:
             if all_day:
-                SmartScene.objects.create(user_id=user_id, scene_name=scene_name, conditions=conditions, tasks=tasks,
-                                          created_time=now_time, updated_time=now_time)
+                SmartScene.objects.create(**smart_scene_dict)
             else:
             else:
                 start_time = request_dict.get('startTime', None)
                 start_time = request_dict.get('startTime', None)
                 end_time = request_dict.get('endTime', None)
                 end_time = request_dict.get('endTime', None)
@@ -132,8 +147,8 @@ class SmartSceneView(View):
                     effective_time_id = effective_time_qs[0]['id']
                     effective_time_id = effective_time_qs[0]['id']
                 else:
                 else:
                     effective_time_id = EffectiveTime.objects.create(start_time=start_time, end_time=end_time, repeat=repeat).id
                     effective_time_id = EffectiveTime.objects.create(start_time=start_time, end_time=end_time, repeat=repeat).id
-                SmartScene.objects.create(user_id=user_id, scene_name=scene_name, conditions=conditions, tasks=tasks,
-                                          effective_time_id=effective_time_id, created_time=now_time, updated_time=now_time)
+                smart_scene_dict['effective_time_id'] = effective_time_id
+                SmartScene.objects.create(**smart_scene_dict)
             return response.json(0)
             return response.json(0)
         except Exception as e:
         except Exception as e:
             return response.json(500, repr(e))
             return response.json(500, repr(e))

+ 1 - 1
Model/models.py

@@ -2626,7 +2626,7 @@ class SmartScene(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记id')
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记id')
     user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
     user = models.ForeignKey(Device_User, to_field='userID', default='', on_delete=models.CASCADE,
                              verbose_name='关联用户表id')
                              verbose_name='关联用户表id')
-    device_id = models.IntegerField(default=0, verbose_name=u'关联设备信息id')
+    device_id = models.CharField(default='', max_length=32, verbose_name=u'关联设备信息id')
     sub_device_id = models.IntegerField(default=0, verbose_name=u'关联子设备表id')
     sub_device_id = models.IntegerField(default=0, verbose_name=u'关联子设备表id')
     scene_name = models.CharField(default='', max_length=100, verbose_name=u'场景名称')
     scene_name = models.CharField(default='', max_length=100, verbose_name=u'场景名称')
     conditions = models.CharField(default='', max_length=255, verbose_name=u'条件')
     conditions = models.CharField(default='', max_length=255, verbose_name=u'条件')