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

获取设备信息,添加任务-查询设备接口返回序列号信息

locky 2 жил өмнө
parent
commit
b28a5dd839

+ 1 - 1
AdminController/DeviceManagementController.py

@@ -122,7 +122,7 @@ class DeviceManagement(View):
                 if UID:
                     device_info_qs = Device_Info.objects.filter(UID__icontains=UID)
                 if serialNumber:
-                    device_info_qs = Device_Info.objects.filter(serial_number__icontains=serialNumber)
+                    device_info_qs = Device_Info.objects.filter(serial_number__icontains=serialNumber[:9])
                 if NickName:
                     device_info_qs = Device_Info.objects.filter(NickName__icontains=NickName)
                 if username:

+ 34 - 1
Controller/SensorGateway/SmartSceneController.py

@@ -59,6 +59,8 @@ class SmartSceneView(View):
             return self.scene_log(request_dict, response)
         elif operation == 'log-date':  # 查询智能场景日志日期
             return self.scene_log_date(request_dict, response)
+        elif operation == 'voice-audition':  # 智能场景音频试听
+            return self.voice_audition(request_dict, response)
         else:
             return response.json(414)
 
@@ -163,13 +165,15 @@ class SmartSceneView(View):
         @param device_id: 网关设备id
         @return: res
         """
-        device_info_qs = Device_Info.objects.filter(id=device_id).values('NickName', 'Type')
+        device_info_qs = Device_Info.objects.filter(id=device_id).values('NickName', 'Type', 'serial_number')
         nickname = device_info_qs[0]['NickName']
         device_type = device_info_qs[0]['Type']
+        serial_number = device_info_qs[0]['serial_number']
         room_id = FamilyRoomDevice.objects.filter(device_id=device_id).values('room_id')[0]['room_id']
         room_id_qs = FamilyRoom.objects.filter(id=room_id).values('name')
         room_name = room_id_qs.first()['name'] if room_id_qs.exists() else ''
         res = {
+            'serialNumber': serial_number,
             'deviceNickName': nickname,
             'deviceType': device_type,
             'roomName': room_name,
@@ -988,6 +992,35 @@ class SmartSceneView(View):
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @classmethod
+    def voice_audition(cls, request_dict, response):
+        """
+        智能场景音频试听
+        @param request_dict: 请求参数
+        @request_dict deviceId: 网关设备id
+        @request_dict subDeviceId: 子设备id
+        @request_dict voiceId: 音频id
+        @param response: 响应对象
+        @return: response
+        """
+        device_id = request_dict.get('deviceId', None)
+        sub_device_id = request_dict.get('subDeviceId', None)
+        voice_id = request_dict.get('voiceId', None)
+        if not any([device_id, sub_device_id]) or voice_id is None:
+            return response.json(444)
+        try:
+            if sub_device_id:
+                device_id = GatewaySubDevice.objects.get(id=sub_device_id).device_id
+            gateway_sub_device_qs = GatewaySubDevice.objects.filter(device_id=device_id)
+            if not gateway_sub_device_qs.exists():
+                return response.json(173)
+            # 查询序列号
+
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
+
 #
 #                   ___====-_  _-====___
 #             _--^^^#####//      \\#####^^^--_

+ 7 - 4
Controller/SensorGateway/SubDeviceController.py

@@ -592,19 +592,22 @@ class GatewaySubDeviceView(View):
         try:
             family_room_device_qs = FamilyRoomDevice.objects.filter(family_id=family_id, sub_device=0,
                                                                     device__Type=200).values(
-                'device_id', 'device__NickName').order_by('-device__data_joined')
+                'device_id', 'device__NickName', 'device__serial_number').order_by('-device__data_joined')
             if room_id:
                 family_room_device_qs = family_room_device_qs.filter(room_id=room_id)
             device_list = []
             for item in family_room_device_qs:
+                device_id = item['device_id']
+                serial_number = item['device__serial_number']
                 device_dict = {
-                    'deviceId': item['device_id'],
                     'deviceType': 200,
-                    'deviceNickName': item['device__NickName'],
+                    'deviceId': device_id,
+                    'serialNumber': serial_number,
+                    'deviceNickName': item['device__NickName']
                 }
                 sub_device = []
                 family_room_sub_device_qs = FamilyRoomDevice.objects.filter(Q(family_id=family_id), ~Q(sub_device=0),
-                                                                            Q(device_id=item['device_id'])).values(
+                                                                            Q(device_id=device_id)).values(
                     'sub_device', 'room_id').order_by('sort')
                 if family_room_sub_device_qs.exists():
                     for each in family_room_sub_device_qs: