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

修复获取iot的endpoint和token_iot_number问题

locky 3 жил өмнө
parent
commit
6cc6a13e40

+ 23 - 29
Controller/EquipmentManagerV3.py

@@ -577,17 +577,12 @@ class EquipmentManagerV3(View):
                            'isCameraOpenCloud', 'serial_number')
         dvls = CommonService.qs_to_list(dvql)
         uid_list = []
-        serial_number_list = []
         for dvl in dvls:
             if dvl['primaryUserID'] and dvl['id'] == dvl['primaryUserID']:
                 dvl['isPrimaryUser'] = 1
             else:
                 dvl['isPrimaryUser'] = 0
             uid_list.append(dvl['UID'])
-            serial_number_list.append(dvl['serial_number'][0:6])
-
-        # 新增获取IOT证书内容
-        iotqs = iotdeviceInfoModel.objects.filter(serial_number__in=serial_number_list)
 
         ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
             values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -666,16 +661,18 @@ class EquipmentManagerV3(View):
             uv_dict[us['uid']]['channels'] = channels
 
         for p in dvls:
-            # 新增IOT
+            # 获取iot_deviceInfo表的endpoint和token_iot_number
             p['iot'] = []
-            for iot in iotqs:
-                if p['serial_number'][0:6] == iot.serial_number:
-                    p['iot'].append(
-                        {
-                            'endpoint': iot.endpoint,
-                            'token_iot_number': iot.token_iot_number
-                        }
-                    )
+            if p['serial_number']:  # 存在序列号根据序列号查询
+                iotdeviceInfo_qs = iotdeviceInfoModel.objects.filter(serial_number=p['serial_number'][0:6])
+            else:   # 根据uid查询
+                iotdeviceInfo_qs = iotdeviceInfoModel.objects.filter(uid=p['UID'])
+            if iotdeviceInfo_qs.exists():
+                iotdeviceInfo = iotdeviceInfo_qs.values('endpoint', 'token_iot_number')
+                p['iot'].append({
+                    'endpoint': iotdeviceInfo[0]['endpoint'],
+                    'token_iot_number': iotdeviceInfo[0]['token_iot_number']
+                })
 
             p['vod'] = []
             for dm in ubqs:
@@ -788,13 +785,8 @@ class EquipmentManagerV3(View):
 
                 dvls = CommonService.qs_to_list(device_qs)
                 uid_list = []
-                serial_number_list = []
                 for dvl in dvls:
                     uid_list.append(dvl['UID'])
-                    serial_number_list.append(dvl['serial_number'][0:6])
-
-                # 新增获取IOT证书内容
-                iotqs = iotdeviceInfoModel.objects.filter(serial_number__in=serial_number_list)
 
                 ubqs = UID_Bucket.objects.filter(uid__in=uid_list). \
                     values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -859,17 +851,19 @@ class EquipmentManagerV3(View):
                     uv_dict[us['uid']]['channels'] = channels
 
                 for p in dvls:
-                    # 新增IOT
+                    # 获取iot_deviceInfo表的endpoint和token_iot_number
                     p['iot'] = []
-                    for iot in iotqs:
-                        if p['serial_number'][0:6] == iot.serial_number:
-                            p['iot'].append(
-                                {
-                                    'endpoint': iot.endpoint,
-                                    'token_iot_number': iot.token_iot_number
-
-                                }
-                            )
+                    if p['serial_number']:  # 存在序列号根据序列号查询
+                        iotdeviceInfo_qs = iotdeviceInfoModel.objects.filter(serial_number=p['serial_number'][0:6])
+                    else:  # 根据uid查询
+                        iotdeviceInfo_qs = iotdeviceInfoModel.objects.filter(uid=p['UID'])
+                    if iotdeviceInfo_qs.exists():
+                        iotdeviceInfo = iotdeviceInfo_qs.values('endpoint', 'token_iot_number')
+                        p['iot'].append({
+                            'endpoint': iotdeviceInfo[0]['endpoint'],
+                            'token_iot_number': iotdeviceInfo[0]['token_iot_number']
+                        })
+
                     p['vod'] = []
                     for dm in ubqs:
                         if p['UID'] == dm['uid']: