瀏覽代碼

查询设备信息增加iccid

zhangdongming 3 年之前
父節點
當前提交
ae7b8e7916
共有 1 個文件被更改,包括 50 次插入44 次删除
  1. 50 44
      Controller/EquipmentManagerV3.py

+ 50 - 44
Controller/EquipmentManagerV3.py

@@ -1,24 +1,23 @@
+import json
 import re
 import threading
 import time
-import traceback
 
+import base64
+import oss2
 import requests
-
-from Controller.CheckUserData import RandomStr
-import oss2, base64
 from django.db.models import Q
 from django.views.generic.base import View
+
+from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
+from Controller.CheckUserData import RandomStr
 from Controller.DeviceConfirmRegion import Device_Region
-from Object.RedisObject import RedisObject
-from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY, BASE_DIR
-from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, UidChannelSetModel, \
-    Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UIDMainUser, UIDModel
+from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidChannelSetModel, \
+    Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UIDModel, UnicomDeviceInfo
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
-import time, json
 
 
 class EquipmentManagerV3(View):
@@ -61,7 +60,7 @@ class EquipmentManagerV3(View):
         elif operation == 'fuzzyQuery':
             return self.do_fuzzy_query(userID, request_dict, response)
         elif operation == 'mainUserDevice':
-            return self.do_mainUserDevice( request_dict, response)
+            return self.do_mainUserDevice(request_dict, response)
         elif operation == 'getDeviceFeatures':
             return self.do_get_device_features(request_dict, response)
         else:
@@ -111,19 +110,18 @@ class EquipmentManagerV3(View):
         primaryMaster = ''
         isShare = False
 
-        is_bind = Device_Info.objects.filter(UID=UID, isShare=False).values('userID__userID', 'primaryUserID', 'primaryMaster')
+        is_bind = Device_Info.objects.filter(UID=UID, isShare=False).values('userID__userID', 'primaryUserID',
+                                                                            'primaryMaster')
 
         if main_exist.exists():
             vodPrimaryUserID = main_exist[0]['vodPrimaryUserID']
             vodPrimaryMaster = main_exist[0]['vodPrimaryMaster']
 
-
         if is_bind.exists():
             primaryUserID = is_bind[0]['primaryUserID']
             primaryMaster = is_bind[0]['primaryMaster']
             isShare = True
 
-
         isusermain = False
         if (vodPrimaryUserID != userID and vodPrimaryUserID != '') or (primaryUserID != userID and primaryUserID != ''):
             isusermain = True
@@ -192,8 +190,8 @@ class EquipmentManagerV3(View):
                 # 多通道设备设置通道名
                 if Type in dvr_type_list:
                     UidChannelSet_bulk = []
-                    for i in range(1, ChannelIndex+1):
-                        channel_name = 'channel'+str(i)  # channel1,channel2...
+                    for i in range(1, ChannelIndex + 1):
+                        channel_name = 'channel' + str(i)  # channel1,channel2...
                         UidChannelSet = UidChannelSetModel(uid_id=UidSet_id, channel=i, channel_name=channel_name)
                         UidChannelSet_bulk.append(UidChannelSet)
                     UidChannelSetModel.objects.bulk_create(UidChannelSet_bulk)
@@ -218,7 +216,7 @@ class EquipmentManagerV3(View):
             if us_qs.exists() and us_qs[0].is_alexa == 1:
                 if us_qs[0].channel > 1:
                     data_list = []
-                    uid_channel_set_qs = UidChannelSetModel.objects.filter(uid_id=us_qs[0].id).\
+                    uid_channel_set_qs = UidChannelSetModel.objects.filter(uid_id=us_qs[0].id). \
                         values('channel', 'channel_name')
                     if uid_channel_set_qs.exists():
                         # 多通道设备名为 UidChannelSetModel 的 channel_name
@@ -255,8 +253,8 @@ class EquipmentManagerV3(View):
             iotqs = iotdeviceInfoModel.objects.filter(serial_number=dvql[0]['serial_number'])
             if iotqs.exists():
                 res['iot'] = {
-                        'endpoint': iotqs[0].endpoint,
-                        'token_iot_number': iotqs[0].endpoint
+                    'endpoint': iotqs[0].endpoint,
+                    'token_iot_number': iotqs[0].endpoint
                 }
 
             # 除C1的序列号暂时返回''
@@ -275,16 +273,16 @@ class EquipmentManagerV3(View):
             return response.json(444, {'param': 'uidContent'})
 
         try:
-            deviceNumber = 0            # 添加成功数量
-            add_success_flag = False    # 添加成功标识
-            exception_flag = False      # 异常标识
-            exists_flag = False         # 已存在标识
+            deviceNumber = 0  # 添加成功数量
+            add_success_flag = False  # 添加成功标识
+            exception_flag = False  # 异常标识
+            exists_flag = False  # 已存在标识
             uid_content_list = eval(uidContent)
             print('uidContent: ', uid_content_list)
             re_uid = re.compile(r'^[A-Za-z0-9]{14,20}$')
             for uid_content in uid_content_list:
                 exception_flag = False  # 重置异常标识
-                exists_flag = False     # 已存在标识
+                exists_flag = False  # 已存在标识
                 UID = uid_content['uid']
                 NickName = uid_content['nickName']
                 Type = uid_content['type']
@@ -297,7 +295,7 @@ class EquipmentManagerV3(View):
                 if not all([UID, NickName, View_Account]):  # Type和ChannelIndex可能为0
                     return response.json(444, {'param': 'UID, NickName, View_Account'})
 
-                if not re_uid.match(UID):   # 检查uid长度
+                if not re_uid.match(UID):  # 检查uid长度
                     return response.json(444, {'error uid length': UID})
 
                 device_info_qs = Device_Info.objects.filter(UID=UID, userID_id=userID)
@@ -321,7 +319,8 @@ class EquipmentManagerV3(View):
                 primaryMaster = ''
                 isShare = False
 
-                is_bind = Device_Info.objects.filter(UID=UID, isShare=False).values('userID__userID', 'primaryUserID', 'primaryMaster')
+                is_bind = Device_Info.objects.filter(UID=UID, isShare=False).values('userID__userID', 'primaryUserID',
+                                                                                    'primaryMaster')
 
                 if main_exist.exists():
                     vodPrimaryUserID = main_exist[0]['vodPrimaryUserID']
@@ -333,7 +332,8 @@ class EquipmentManagerV3(View):
                     isShare = True
 
                 isusermain = False
-                if (vodPrimaryUserID != userID and vodPrimaryUserID != '') or (primaryUserID != userID and primaryUserID != ''):
+                if (vodPrimaryUserID != userID and vodPrimaryUserID != '') or (
+                        primaryUserID != userID and primaryUserID != ''):
                     isusermain = True
 
                 # 判断是否有已绑定用户
@@ -400,14 +400,15 @@ class EquipmentManagerV3(View):
                     multi_channel_list = [1, 2, 3, 4, 10001]
                     if Type in multi_channel_list:
                         UidChannelSet_bulk = []
-                        for i in range(1, ChannelIndex+1):
-                            channel_name = 'channel'+str(i)  # channel1,channel2...
+                        for i in range(1, ChannelIndex + 1):
+                            channel_name = 'channel' + str(i)  # channel1,channel2...
                             UidChannelSet = UidChannelSetModel(uid_id=UidSet_id, channel=i, channel_name=channel_name)
                             UidChannelSet_bulk.append(UidChannelSet)
                         UidChannelSetModel.objects.bulk_create(UidChannelSet_bulk)
 
                 userDevice = Device_Info(id=id, userID_id=userID, UID=UID, NickName=NickName, View_Account=View_Account,
-                                         View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex, version=version,
+                                         View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex,
+                                         version=version,
                                          vodPrimaryUserID=vodPrimaryUserID, vodPrimaryMaster=vodPrimaryMaster)
                 userDevice.save()
                 uid_serial_qs = UIDCompanySerialModel.objects.filter(uid__uid=UID)
@@ -426,13 +427,14 @@ class EquipmentManagerV3(View):
                 if us_qs.exists() and us_qs[0].is_alexa == 1:
                     if us_qs[0].channel > 1:
                         data_list = []
-                        uid_channel_set_qs = UidChannelSetModel.objects.filter(uid_id=us_qs[0].id).\
+                        uid_channel_set_qs = UidChannelSetModel.objects.filter(uid_id=us_qs[0].id). \
                             values('channel', 'channel_name')
                         if uid_channel_set_qs.exists():
                             # 多通道设备名为 UidChannelSetModel 的 channel_name
                             for uid_channel_set in uid_channel_set_qs:
-                                data_list.append({'userID': userID, 'UID': UID, 'uid_nick': uid_channel_set['channel_name'],
-                                                  'channel': uid_channel_set['channel'], 'password': encryptPassword})
+                                data_list.append(
+                                    {'userID': userID, 'UID': UID, 'uid_nick': uid_channel_set['channel_name'],
+                                     'channel': uid_channel_set['channel'], 'password': encryptPassword})
                     else:
                         data_list = [{'userID': userID, 'UID': UID, 'uid_nick': NickName, 'password': encryptPassword}]
 
@@ -449,7 +451,8 @@ class EquipmentManagerV3(View):
                                                                 'vodPrimaryUserID', 'vodPrimaryMaster',
                                                                 'userID__userEmail',
                                                                 'data_joined', 'version',
-                                                                'isVod', 'isExist', 'isCameraOpenCloud', 'serial_number')
+                                                                'isVod', 'isExist', 'isCameraOpenCloud',
+                                                                'serial_number')
                 dvql = CommonService.qs_to_list(dvqs)
                 ubqs = UID_Bucket.objects.filter(uid=UID). \
                     values('bucket__content', 'status', 'channel', 'endTime', 'uid')
@@ -467,9 +470,9 @@ class EquipmentManagerV3(View):
             exception_flag = True
             pass
         finally:
-            if add_success_flag:    # 有一台添加成功则返回成功
+            if add_success_flag:  # 有一台添加成功则返回成功
                 return response.json(0, success_res)
-            if exists_flag:         # 全部设备已存在
+            if exists_flag:  # 全部设备已存在
                 return response.json(174, exists_res)
             if exception_flag:
                 return response.json(500, error_res)
@@ -579,7 +582,7 @@ class EquipmentManagerV3(View):
         dvqs = Device_Info.objects.filter(userID_id=userID)
         # # 过滤已重置的设备
         dvqs = dvqs.filter(~Q(isExist=2))
-        dvql = dvqs.values('id', 'userID', 'NickName', 'UID', 'View_Account','View_Password', 'ChannelIndex',
+        dvql = dvqs.values('id', 'userID', 'NickName', 'UID', 'View_Account', 'View_Password', 'ChannelIndex',
                            'Type', 'isShare', 'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID',
                            'vodPrimaryMaster', 'userID__userEmail', 'version', 'isVod', 'isExist', 'NotificationMode',
                            'isCameraOpenCloud', 'serial_number')
@@ -672,6 +675,10 @@ class EquipmentManagerV3(View):
             uv_dict[us['uid']]['channels'] = channels
 
         for p in dvls:
+            if p['serial_number']:
+                u_device_info_qs = UnicomDeviceInfo.objects.filter(serial_no=p['serial_number'])
+                if u_device_info_qs.exists():
+                    p['iccid'] = u_device_info_qs.first().iccid
             # C1返回序列号
             if p['Type'] != 101:
                 p['serial_number'] = ''
@@ -679,7 +686,7 @@ class EquipmentManagerV3(View):
             p['iot'] = []
             if p['serial_number']:  # 存在序列号根据序列号查询
                 iotdeviceInfo_qs = iotdeviceInfoModel.objects.filter(serial_number=p['serial_number'][0:6])
-            else:   # 根据uid查询
+            else:  # 根据uid查询
                 iotdeviceInfo_qs = iotdeviceInfoModel.objects.filter(uid=p['UID'])
             if iotdeviceInfo_qs.exists():
                 iotdeviceInfo = iotdeviceInfo_qs.values('endpoint', 'token_iot_number')
@@ -712,8 +719,8 @@ class EquipmentManagerV3(View):
             if p_uid in uv_dict:
                 # 设备版本号
                 uidversion = uv_dict[p_uid]['version']
-                if len(uidversion) >6:
-                    uidversion = uidversion[0 : uidversion.rfind('.')]
+                if len(uidversion) > 6:
+                    uidversion = uidversion[0: uidversion.rfind('.')]
                 p['uid_version'] = uidversion
                 p['ucode'] = uv_dict[p_uid]['ucode']
                 p['detect_interval'] = uv_dict[p_uid]['detect_interval']
@@ -990,16 +997,15 @@ class EquipmentManagerV3(View):
             phone = qs[0]['phone']
             username = qs[0]['username']
             qs = CommonService.qs_to_list(qs)
-            if NickName =='':
+            if NickName == '':
                 qs[0]['NickName'] = username
 
             # if userEmail =='':
             #     qs[0]['userEmail'] = NickName
 
-            if phone =='':
+            if phone == '':
                 qs[0]['phone'] = NickName
 
-
         # if not qs:
         #     uidq = UIDMainUser.objects.filter(UID=UID).values('user_id')
         #     if uidq.exists():
@@ -1030,9 +1036,9 @@ class EquipmentManagerV3(View):
             phone = qs[0]['phone']
             username = qs[0]['username']
             qs = CommonService.qs_to_list(qs)
-            if NickName =='':
+            if NickName == '':
                 qs[0]['NickName'] = username
-            if phone =='':
+            if phone == '':
                 qs[0]['phone'] = NickName
         return response.json(0, qs)