소스 검색

设置温度单位关联用户

locky 10 달 전
부모
커밋
8f2af0f25d
2개의 변경된 파일11개의 추가작업 그리고 18개의 파일을 삭제
  1. 10 17
      Controller/SensorGateway/SubDeviceController.py
  2. 1 1
      Model/models.py

+ 10 - 17
Controller/SensorGateway/SubDeviceController.py

@@ -62,9 +62,9 @@ class GatewaySubDeviceView(View):
         elif operation == 'update-emergency-status':  # 更新智能按钮紧急开关状态
             return self.update_emergency_status(request_dict, response)
         elif operation == 'get-temperature-unit':  # 查询温湿度传感器单位
-            return self.get_temperature_unit(request_dict, response)
+            return self.get_temperature_unit(request_dict, response, user_id)
         elif operation == 'update-temperature-unit':  # 修改温湿度传感器单位
-            return self.update_temperature_unit(request_dict, response)
+            return self.update_temperature_unit(request_dict, response, user_id)
         else:
             return response.json(414)
 
@@ -144,7 +144,7 @@ class GatewaySubDeviceView(View):
                                                     updated_time=now_time)
                 # 温湿度传感器,设备温度单位表创建数据
                 if device_type == SENSOR_TYPE['tem_hum_sensor']:
-                    DeviceTemperatureUnit.objects.create(sub_device_id=sub_device_id)
+                    DeviceTemperatureUnit.objects.create(user_id=user_id)
 
             return response.json(0)
         except Exception as e:
@@ -657,21 +657,16 @@ class GatewaySubDeviceView(View):
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
     @staticmethod
-    def get_temperature_unit(request_dict, response):
+    def get_temperature_unit(request_dict, response, user_id):
         """
         查询温湿度传感器单位
         @param request_dict: 请求参数
-        @request_dict gatewaySubId: 子设备id
+        @param user_id: 用户id
         @param response: 响应对象
         @return: response
         """
-        sub_device_id = request_dict.get('gatewaySubId', None)
-
-        if not all([sub_device_id]):
-            return response.json(444)
-
         try:
-            device_temperature_unit_qs = DeviceTemperatureUnit.objects.filter(sub_device_id=sub_device_id).\
+            device_temperature_unit_qs = DeviceTemperatureUnit.objects.filter(user_id=user_id).\
                 values('temperature_unit')
             if not device_temperature_unit_qs.exists():
                 return response.json(173)
@@ -684,23 +679,21 @@ class GatewaySubDeviceView(View):
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
     @staticmethod
-    def update_temperature_unit(request_dict, response):
+    def update_temperature_unit(request_dict, response, user_id):
         """
         修改温湿度传感器单位
         @param request_dict: 请求参数
-        @request_dict gatewaySubId: 子设备id
         @param response: 响应对象
+        @param user_id: 用户id
         @return: response
         """
-        sub_device_id = request_dict.get('gatewaySubId', None)
         temperature_unit = request_dict.get('temperatureUnit', None)
 
-        if not all([sub_device_id, temperature_unit]):
+        if not temperature_unit:
             return response.json(444)
 
         try:
-            temperature_unit = int(temperature_unit)
-            DeviceTemperatureUnit.objects.filter(sub_device_id=sub_device_id).update(temperature_unit=temperature_unit)
+            DeviceTemperatureUnit.objects.filter(user_id=user_id).update(temperature_unit=int(temperature_unit))
             return response.json(0)
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))

+ 1 - 1
Model/models.py

@@ -3845,7 +3845,7 @@ class EffectiveTime(models.Model):
 
 class DeviceTemperatureUnit(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='自增标记id')
-    sub_device_id = models.IntegerField(default=0, verbose_name='关联网关子设备表id')
+    user_id = models.CharField(default='', max_length=32, verbose_name='用户id')
     temperature_unit = models.SmallIntegerField(default=0, verbose_name='温度单位')  # 0: 华氏度℉, 1: 摄氏度℃
 
     class Meta: