Эх сурвалжийг харах

新增查询子设备接口

peng 3 жил өмнө
parent
commit
f1a950fd21

+ 1 - 1
Ansjer/cn_config/test_settings.py

@@ -45,7 +45,7 @@ AUTHENTICATION_BACKENDS = (
 ADDR_URL = []
 ADDR_URL = []
 ANONYMOUS_USER_ID = -1  # 支持匿名用户
 ANONYMOUS_USER_ID = -1  # 支持匿名用户
 
 
-STATIC_URL = '/static/'
+STATIC_URL = '/static/static/'
 
 
 # 上传路径根目录
 # 上传路径根目录
 MEDIA_ROOT = os.path.join(BASE_DIR, 'static/Upgrate')
 MEDIA_ROOT = os.path.join(BASE_DIR, 'static/Upgrate')

+ 6 - 6
Ansjer/local_config/local_settings.py

@@ -14,7 +14,7 @@ ALLOWED_HOSTS = ['*']
 ADDR_URL = []
 ADDR_URL = []
 ANONYMOUS_USER_ID = -1  # 支持匿名用户
 ANONYMOUS_USER_ID = -1  # 支持匿名用户
 
 
-STATIC_URL = '/static/'
+STATIC_URL = '/static/static/'
 STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
 STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)
 
 
 # 上传路径根目录
 # 上传路径根目录
@@ -100,13 +100,13 @@ WSGI_APPLICATION = 'Ansjer.local_config.local_wsgi.application'
 DATABASE_DATA = 'ansjer'
 DATABASE_DATA = 'ansjer'
 SERVER_HOST = '127.0.0.1'
 SERVER_HOST = '127.0.0.1'
 DATABASES_USER = 'root'
 DATABASES_USER = 'root'
-DATABASES_PASS = '123456'
+DATABASES_PASS = '0000'
 
 
 # 推送数据库
 # 推送数据库
 DATABASE_DATA2 = 'push'
 DATABASE_DATA2 = 'push'
 SERVER_HOST2 = '127.0.0.1'
 SERVER_HOST2 = '127.0.0.1'
 DATABASES_USER2 = 'root'
 DATABASES_USER2 = 'root'
-DATABASES_PASS2 = '123456'
+DATABASES_PASS2 = '0000'
 
 
 # 序列号公共数据库
 # 序列号公共数据库
 # DATABASE_DATA3 = 'ansjer_test'
 # DATABASE_DATA3 = 'ansjer_test'
@@ -251,7 +251,7 @@ LOGGING = {
         'default': {
         'default': {
             'level': 'ERROR',
             'level': 'ERROR',
             'class': 'logging.handlers.TimedRotatingFileHandler',
             'class': 'logging.handlers.TimedRotatingFileHandler',
-            'filename': BASE_DIR + '/static/log/error/error.log',
+            'filename': BASE_DIR + '/static/error/error/error.error',
             'backupCount': 30,
             'backupCount': 30,
             'when': 'D',
             'when': 'D',
             'formatter': 'error_format',
             'formatter': 'error_format',
@@ -264,7 +264,7 @@ LOGGING = {
         'info': {
         'info': {
             'level': 'INFO',
             'level': 'INFO',
             'class': 'logging.handlers.TimedRotatingFileHandler',
             'class': 'logging.handlers.TimedRotatingFileHandler',
-            'filename': BASE_DIR + '/static/log/info/info.log',
+            'filename': BASE_DIR + '/static/error/info/info.error',
             'backupCount': 30,
             'backupCount': 30,
             'when': 'D',
             'when': 'D',
             'formatter': 'standard',
             'formatter': 'standard',
@@ -279,7 +279,7 @@ LOGGING = {
             'level': 'ERROR',
             'level': 'ERROR',
             'propagate': False
             'propagate': False
         },
         },
-        # log 调用时需要当作参数传入
+        # error 调用时需要当作参数传入
         'info': {
         'info': {
             'handlers': ['info'],
             'handlers': ['info'],
             'level':'INFO',
             'level':'INFO',

+ 42 - 2
Controller/SensorGateway/SubDeviceController.py

@@ -8,11 +8,11 @@ import time
 from collections import OrderedDict
 from collections import OrderedDict
 
 
 from django.db import transaction
 from django.db import transaction
-from django.db.models import Count
+from django.db.models import Count, Q
 from django.views import View
 from django.views import View
 
 
 from Ansjer.Config.gatewaySensorConfig import SMART_SCENE_TOPIC, SENSOR_TYPE, EVENT_TYPE
 from Ansjer.Config.gatewaySensorConfig import SMART_SCENE_TOPIC, SENSOR_TYPE, EVENT_TYPE
-from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene, SceneLog
+from Model.models import Device_Info, GatewaySubDevice, FamilyRoomDevice, SensorRecord, SmartScene, SceneLog, FamilyRoom
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
 
 
 
 
@@ -49,6 +49,8 @@ class GatewaySubDeviceView(View):
             return self.sensor_home_info(request_dict, response)
             return self.sensor_home_info(request_dict, response)
         elif operation == 'update-emergency-status':  # 更新智能按钮紧急开关状态
         elif operation == 'update-emergency-status':  # 更新智能按钮紧急开关状态
             return self.update_emergency_status(request_dict, response)
             return self.update_emergency_status(request_dict, response)
+        elif operation == 'list':  # 获取子设备信息
+            return self.get_sensor_list(request_dict, response)
         else:
         else:
             return response.json(414)
             return response.json(414)
 
 
@@ -522,6 +524,44 @@ class GatewaySubDeviceView(View):
         except Exception as e:
         except Exception as e:
             return response.json(500, repr(e))
             return response.json(500, repr(e))
 
 
+    @staticmethod
+    def get_sensor_list(request_dict, response):
+        """
+        获取子设备信息
+        @param request_dict: 请求参数
+        @request_dict familyId: 家庭id
+        @param response: 响应对象
+        @return: response
+        """
+        family_id = request_dict.get('familyId', None)
+        if not family_id:
+            return response.json(444, {'error param': 'family_id'})
+
+        try:
+            family_room_device_qs = FamilyRoomDevice.objects.filter(Q(family_id=family_id), ~Q(sub_device=0)).values(
+                'sub_device', 'room_id').order_by('sort')
+            device_list = []
+            for item in family_room_device_qs:
+                room_qs = FamilyRoom.objects.filter(id=item['room_id']).values('name')
+                room_name = room_qs[0]['name'] if room_qs.exists() else ''
+                device_qs = GatewaySubDevice.objects.filter(id=item['sub_device']).values('id', 'nickname',
+                                                                                          'device_type', 'src_addr',
+                                                                                          'status', 'created_time')
+                if device_qs.exists():
+                    res = {
+                        'gatewaySubId': device_qs[0]['id'],
+                        'nickName': device_qs[0]['nickname'],
+                        'deviceType': device_qs[0]['device_type'],
+                        'srcAddr': device_qs[0]['src_addr'],
+                        'status': device_qs[0]['status'],
+                        'createdTime': device_qs[0]['created_time'],
+                        'roomName': room_name
+                    }
+                    device_list.append(res)
+            return response.json(0, device_list)
+        except Exception as e:
+            return response.json(500, repr(e))
+
 #
 #
 #                   ___====-_  _-====___
 #                   ___====-_  _-====___
 #             _--^^^#####//      \\#####^^^--_
 #             _--^^^#####//      \\#####^^^--_