瀏覽代碼

Merge branch 'test' of http://192.168.136.99:3000/servers/ASJServer into peng

peng 11 月之前
父節點
當前提交
d222e145e7
共有 4 個文件被更改,包括 79 次插入7 次删除
  1. 60 4
      Controller/SensorGateway/SubDeviceController.py
  2. 0 1
      Controller/SysManage.py
  3. 11 0
      Model/models.py
  4. 8 2
      Service/EquipmentInfoService.py

+ 60 - 4
Controller/SensorGateway/SubDeviceController.py

@@ -12,7 +12,8 @@ from django.db.models import Count, Q
 from django.views import View
 
 from Ansjer.Config.gatewaySensorConfig import SMART_SCENE_TOPIC, SENSOR_TYPE, EVENT_TYPE, SCENE_EVENT_SOS
-from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene, SceneLog, FamilyRoom
+from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene, SceneLog, \
+    FamilyRoom, DeviceTemperatureUnit
 from Service.CommonService import CommonService
 from Object.ResponseObject import ResponseObject
 
@@ -60,6 +61,10 @@ class GatewaySubDeviceView(View):
             return self.records_date(request_dict, response)
         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)
+        elif operation == 'update-temperature-unit':  # 修改温湿度传感器单位
+            return self.update_temperature_unit(request_dict, response)
         else:
             return response.json(414)
 
@@ -125,18 +130,21 @@ class GatewaySubDeviceView(View):
                                                              firmware_version=firmware_version,
                                                              hardware_version=hardware_version,
                                                              created_time=now_time, updated_time=now_time)
-
+                sub_device_id = sub_device.id
                 family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, category=0).values(
                     'category_sort')
                 if family_room_device_qs.exists():
                     FamilyRoomDevice.objects.create(family_id=family_id, room_id=room_id, device_id=device_id,
-                                                    sub_device=sub_device.id, created_time=now_time,
+                                                    sub_device=sub_device_id, created_time=now_time,
                                                     updated_time=now_time,
                                                     category_sort=family_room_device_qs[0]['category_sort'])
                 else:
                     FamilyRoomDevice.objects.create(family_id=family_id, room_id=room_id, device_id=device_id,
-                                                    sub_device=sub_device.id, created_time=now_time,
+                                                    sub_device=sub_device_id, created_time=now_time,
                                                     updated_time=now_time)
+                # 温湿度传感器,设备温度单位表创建数据
+                if device_type == SENSOR_TYPE['tem_hum_sensor']:
+                    DeviceTemperatureUnit.objects.create(sub_device_id=sub_device_id)
 
             return response.json(0)
         except Exception as e:
@@ -648,6 +656,54 @@ class GatewaySubDeviceView(View):
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @staticmethod
+    def get_temperature_unit(request_dict, response):
+        """
+        查询温湿度传感器单位
+        @param request_dict: 请求参数
+        @request_dict gatewaySubId: 子设备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).\
+                values('temperature_unit')
+            if not device_temperature_unit_qs.exists():
+                return response.json(173)
+            temperature_unit = device_temperature_unit_qs[0]['temperature_unit']
+            res = {
+                'temperature_unit': temperature_unit
+            }
+            return response.json(0, res)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
+    @staticmethod
+    def update_temperature_unit(request_dict, response):
+        """
+        修改温湿度传感器单位
+        @param request_dict: 请求参数
+        @request_dict gatewaySubId: 子设备id
+        @param response: 响应对象
+        @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]):
+            return response.json(444)
+
+        try:
+            temperature_unit = int(temperature_unit)
+            DeviceTemperatureUnit.objects.filter(sub_device_id=sub_device_id).update(temperature_unit=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)))
 
 #
 #                   ___====-_  _-====___

+ 0 - 1
Controller/SysManage.py

@@ -110,7 +110,6 @@ def initMsgFunc(request):
     userID = tko.userID
     seven_days_ago = int(time.time()) - 3600 * 24 * 7  # 过滤七天前数据
     sm_count = SysMsgModel.objects.filter(userID_id=userID, status=0).count()
-    sm_count = SysMsgModel.objects.filter(userID_id=userID, status=0).count()
 
     kwargs = {
         'device_user_id': userID,

+ 11 - 0
Model/models.py

@@ -3824,6 +3824,17 @@ class EffectiveTime(models.Model):
         verbose_name_plural = verbose_name
 
 
+class DeviceTemperatureUnit(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name='自增标记id')
+    sub_device_id = models.IntegerField(default=0, verbose_name='关联网关子设备表id')
+    temperature_unit = models.SmallIntegerField(default=0, verbose_name='温度单位')    # 0: 华氏度℉, 1: 摄氏度℃
+
+    class Meta:
+        db_table = 'device_temperature_unit'
+        verbose_name = '设备温度单位'
+        verbose_name_plural = verbose_name
+
+
 class SceneLog(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='自增标记ID')
     scene_name = models.CharField(default='', max_length=100, verbose_name='场景名称')

+ 8 - 2
Service/EquipmentInfoService.py

@@ -7,6 +7,7 @@
 @Software: PyCharm
 """
 import itertools
+from Ansjer.config import CONFIG_INFO, CONFIG_EUR
 from django.db.models import Value, CharField, Q
 from Model.models import EquipmentInfo1, EquipmentInfo2, EquipmentInfo3, EquipmentInfo4, EquipmentInfo5, \
     EquipmentInfo6, EquipmentInfo7, EquipmentInfo8, EquipmentInfo9, EquipmentInfo10, \
@@ -459,7 +460,9 @@ class EquipmentInfoService:
 
             if not equipment_info_union.exists():
                 return None, 0
-            count = 1
+            if CONFIG_EUR == CONFIG_INFO:
+                line = 10
+            count = 21
 
             equipment_info_union = cls.get_equipment_info_union_page(equipment_info_union, page, line)
             return equipment_info_union, count
@@ -566,7 +569,10 @@ class EquipmentInfoService:
             count += equipment_info_model.objects.filter(**kwargs).count()
         if count == 0:
             return count
-        redis_obj.set_data(key, count, 60)
+        if CONFIG_EUR == CONFIG_INFO and count > 99:
+            redis_obj.set_data(key, count, 300)
+        else:
+            redis_obj.set_data(key, count, 60)
         return count
 
     @classmethod