Browse Source

序列号绑定uid,查询设备字段V3添加返回设备初始化字符

locky 4 years ago
parent
commit
bb01c128c7
2 changed files with 217 additions and 203 deletions
  1. 192 187
      Controller/EquipmentManagerV3.py
  2. 25 16
      Controller/SerialNumberController.py

+ 192 - 187
Controller/EquipmentManagerV3.py

@@ -13,7 +13,7 @@ from Controller.DeviceConfirmRegion import Device_Region
 from Object.RedisObject import RedisObject
 from Object.RedisObject import RedisObject
 from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY, BASE_DIR
 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, \
 from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, UidChannelSetModel, \
-    Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UIDMainUser
+    Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UIDMainUser, UIDModel
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
@@ -338,194 +338,199 @@ class EquipmentManagerV3(View):
         response.lang = tko.lang
         response.lang = tko.lang
         if page <= 0:
         if page <= 0:
             return response.json(0)
             return response.json(0)
-        if tko.code == 0:
-            userID = tko.userID
-            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', 'Type', 'isShare',
-                               'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID', 'vodPrimaryMaster',
-                               'userID__userEmail',
-                               'version', 'isVod', 'isExist', 'NotificationMode', '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')
-            upqs = UID_Preview.objects.filter(uid__in=uid_list).order_by('channel').values('id', 'uid', 'channel')
-            auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
-            bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
-            nowTime = int(time.time())
-            data = []
-            # 设备拓展信息表
-            us_qs = UidSetModel.objects.filter(uid__in=uid_list).values('id', 'uid', 'version', 'nickname', 'ucode',
-                                                                        'detect_status', 'detect_group',
-                                                                        'detect_interval',
-                                                                        'region_alexa', 'is_alexa', 'deviceModel',
-                                                                        'TimeZone', 'TimeStatus', 'SpaceUsable',
-                                                                        'SpaceSum', 'MirrorType', 'RecordType',
-                                                                        'OutdoorModel', 'WIFIName', 'isDetector',
-                                                                        'DetectorRank', 'is_human', 'is_custom_voice')
-            uv_dict = {}
-            for us in us_qs:
-                uv_dict[us['uid']] = {
-                    'version': us['version'],
-                    'nickname': us['nickname'],
-                    'ucode': us['ucode'],
-                    'detect_interval': us['detect_interval'],
-                    'detect_group': us['detect_group'],
-                    'detect_status': us['detect_status'],
-                    'region_alexa': us['region_alexa'],
-                    'is_alexa': us['is_alexa'],
-                    'deviceModel': us['deviceModel'],
-                    'TimeZone': us['TimeZone'],
-                    'TimeStatus': us['TimeStatus'],
-                    'SpaceUsable': us['SpaceUsable'],
-                    'SpaceSum': us['SpaceSum'],
-                    'MirrorType': us['MirrorType'],
-                    'RecordType': us['RecordType'],
-                    'OutdoorModel': us['OutdoorModel'],
-                    'WIFIName': us['WIFIName'],
-                    'isDetector': us['isDetector'],
-                    'DetectorRank': us['DetectorRank'],
-                    'is_human': us['is_human'],
-                    'is_custom_voice': us['is_custom_voice']
+        if tko.code != 0:
+            return response.json(tko.code)
+        userID = tko.userID
+        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',
+                           'Type', 'isShare', 'primaryUserID', 'primaryMaster', 'data_joined', 'vodPrimaryUserID',
+                           'vodPrimaryMaster', 'userID__userEmail', 'version', 'isVod', 'isExist', 'NotificationMode',
+                           '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')
+        upqs = UID_Preview.objects.filter(uid__in=uid_list).order_by('channel').values('id', 'uid', 'channel')
+        auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
+        bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
+        nowTime = int(time.time())
+        data = []
+        # 设备拓展信息表
+        us_qs = UidSetModel.objects.filter(uid__in=uid_list).values('id', 'uid', 'version', 'nickname', 'ucode',
+                                                                    'detect_status', 'detect_group',
+                                                                    'detect_interval',
+                                                                    'region_alexa', 'is_alexa', 'deviceModel',
+                                                                    'TimeZone', 'TimeStatus', 'SpaceUsable',
+                                                                    'SpaceSum', 'MirrorType', 'RecordType',
+                                                                    'OutdoorModel', 'WIFIName', 'isDetector',
+                                                                    'DetectorRank', 'is_human', 'is_custom_voice')
+        uv_dict = {}
+        for us in us_qs:
+            uv_dict[us['uid']] = {
+                'version': us['version'],
+                'nickname': us['nickname'],
+                'ucode': us['ucode'],
+                'detect_interval': us['detect_interval'],
+                'detect_group': us['detect_group'],
+                'detect_status': us['detect_status'],
+                'region_alexa': us['region_alexa'],
+                'is_alexa': us['is_alexa'],
+                'deviceModel': us['deviceModel'],
+                'TimeZone': us['TimeZone'],
+                'TimeStatus': us['TimeStatus'],
+                'SpaceUsable': us['SpaceUsable'],
+                'SpaceSum': us['SpaceSum'],
+                'MirrorType': us['MirrorType'],
+                'RecordType': us['RecordType'],
+                'OutdoorModel': us['OutdoorModel'],
+                'WIFIName': us['WIFIName'],
+                'isDetector': us['isDetector'],
+                'DetectorRank': us['DetectorRank'],
+                'is_human': us['is_human'],
+                'is_custom_voice': us['is_custom_voice']
+            }
+            # 从uid_channel里面取出通道配置信息
+            ucs_qs = UidChannelSetModel.objects.filter(uid__id=us['id']).values('channel', 'channel_name',
+                                                                                'pir_audio', 'mic_audio',
+                                                                                'battery_status', 'battery_level',
+                                                                                'sleep_status', 'sleep_time',
+                                                                                'light_night_model',
+                                                                                'light_alarm_type',
+                                                                                'light_alarm_level',
+                                                                                'light_alarm_man_en',
+                                                                                'light_alarm_vol',
+                                                                                'light_long_light'
+                                                                                )
+            channels = []
+            for ucs in ucs_qs:
+                channels_dict = {
+                    'channel': ucs['channel'],
+                    'channel_name': ucs['channel_name'],
+                    'pir_audio': ucs['pir_audio'],
+                    'mic_audio': ucs['mic_audio'],
+                    'battery_status': ucs['battery_status'],
+                    'battery_level': ucs['battery_level'],
+                    'sleep_status': ucs['sleep_status'],
+                    'sleep_time': ucs['sleep_time'],
+                    'light_night_model': ucs['light_night_model'],
+                    'light_alarm_type': ucs['light_alarm_type'],
+                    'light_alarm_level': ucs['light_alarm_level'],
+                    'light_alarm_man_en': ucs['light_alarm_man_en'],
+                    'light_alarm_vol': ucs['light_alarm_vol'],
+                    'light_long_light': ucs['light_long_light']
                 }
                 }
-                # 从uid_channel里面取出通道配置信息
-                ucs_qs = UidChannelSetModel.objects.filter(uid__id=us['id']).values('channel', 'channel_name',
-                                                                                    'pir_audio', 'mic_audio',
-                                                                                    'battery_status', 'battery_level',
-                                                                                    'sleep_status', 'sleep_time',
-                                                                                    'light_night_model',
-                                                                                    'light_alarm_type',
-                                                                                    'light_alarm_level',
-                                                                                    'light_alarm_man_en',
-                                                                                    'light_alarm_vol',
-                                                                                    'light_long_light'
-                                                                                    )
-                channels = []
-                for ucs in ucs_qs:
-                    channels_dict = {
-                        'channel': ucs['channel'],
-                        'channel_name': ucs['channel_name'],
-                        'pir_audio': ucs['pir_audio'],
-                        'mic_audio': ucs['mic_audio'],
-                        'battery_status': ucs['battery_status'],
-                        'battery_level': ucs['battery_level'],
-                        'sleep_status': ucs['sleep_status'],
-                        'sleep_time': ucs['sleep_time'],
-                        'light_night_model': ucs['light_night_model'],
-                        'light_alarm_type': ucs['light_alarm_type'],
-                        'light_alarm_level': ucs['light_alarm_level'],
-                        'light_alarm_man_en': ucs['light_alarm_man_en'],
-                        'light_alarm_vol': ucs['light_alarm_vol'],
-                        'light_long_light': ucs['light_long_light']
-                    }
-                    channels.append(channels_dict)
-                uv_dict[us['uid']]['channels'] = channels
-
-            for p in dvls:
-                # 新增IOT
-                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
-
-                            }
-                        )
-
-                p['vod'] = []
-                for dm in ubqs:
-                    if p['UID'] == dm['uid']:
-                        if dm['endTime'] > nowTime:
-                            p['vod'].append(dm)
-                p['preview'] = []
-                for up in upqs:
-                    if p['UID'] == up['uid']:
-                        obj = 'uid_preview/{uid}/channel_{channel}.png'.format(uid=up['uid'], channel=up['channel'])
-                        img_sign = bucket.sign_url('GET', obj, 300)
-                        p['preview'].append(img_sign)
-                p_uid = p['UID']
-                if p_uid in uv_dict:
-                    # 设备版本号
-                    p['uid_version'] = uv_dict[p_uid]['version']
-                    p['ucode'] = uv_dict[p_uid]['ucode']
-                    p['detect_interval'] = uv_dict[p_uid]['detect_interval']
-                    p['detect_status'] = uv_dict[p_uid]['detect_status']
-                    p['detect_group'] = uv_dict[p_uid]['detect_group']
-                    p['region_alexa'] = uv_dict[p_uid]['region_alexa']
-                    p['is_alexa'] = uv_dict[p_uid]['is_alexa']
-                    p['deviceModel'] = uv_dict[p_uid]['deviceModel']
-                    p['TimeZone'] = uv_dict[p_uid]['TimeZone']
-                    p['TimeStatus'] = uv_dict[p_uid]['TimeStatus']
-                    p['SpaceUsable'] = uv_dict[p_uid]['SpaceUsable']
-                    p['SpaceSum'] = uv_dict[p_uid]['SpaceSum']
-                    p['MirrorType'] = uv_dict[p_uid]['MirrorType']
-                    p['RecordType'] = uv_dict[p_uid]['RecordType']
-                    p['OutdoorModel'] = uv_dict[p_uid]['OutdoorModel']
-                    p['WIFIName'] = uv_dict[p_uid]['WIFIName']
-                    p['isDetector'] = uv_dict[p_uid]['isDetector']
-                    p['DetectorRank'] = uv_dict[p_uid]['DetectorRank']
-                    p['is_human'] = uv_dict[p_uid]['is_human']
-                    p['is_custom_voice'] = uv_dict[p_uid]['is_custom_voice']
-                    p['channels'] = uv_dict[p_uid]['channels']
-                    # 设备昵称 调用影子信息昵称,先阶段不可
-                    if uv_dict[p_uid]['nickname']:
-                        p['NickName'] = uv_dict[p_uid]['nickname']
-                else:
-                    # 设备版本号
-                    p['uid_version'] = ''
-                    p['ucode'] = ''
-                data.append(p)
-            result = data
-
-            if NickName:
-                # print('NickName搜索缓存')
-                data = []
-                for index, item in enumerate(result):
-                    if NickName == item['NickName']:
-                        # 加密
-                        item['View_Password'] = self.encrypt_pwd(item['View_Password'])
-                        data.append(item)
-                        return response.json(0, data)
-            if uid:
-                # print('uid搜索缓存')
-                data = []
-                for index, item in enumerate(result):
-                    if uid == item['UID']:
-                        # 加密
-                        item['View_Password'] = self.encrypt_pwd(item['View_Password'])
-                        data.append(item)
-                        return response.json(0, data)
-            items = []
-            # print('缓存分页')
+                channels.append(channels_dict)
+            uv_dict[us['uid']]['channels'] = channels
+
+        for p in dvls:
+            # 新增IOT
+            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
+                        }
+                    )
+
+            p['vod'] = []
+            for dm in ubqs:
+                if p['UID'] == dm['uid']:
+                    if dm['endTime'] > nowTime:
+                        p['vod'].append(dm)
+            p['preview'] = []
+            for up in upqs:
+                if p['UID'] == up['uid']:
+                    obj = 'uid_preview/{uid}/channel_{channel}.png'.format(uid=up['uid'], channel=up['channel'])
+                    img_sign = bucket.sign_url('GET', obj, 300)
+                    p['preview'].append(img_sign)
+
+            p_uid = p['UID']
+
+            # 返回设备初始化字符
+            uid_qs = UIDModel.objects.filter(uid=p_uid).values('platform', 'init_string', 'init_string_app')
+            if uid_qs.exists():
+                p['platform'] = uid_qs[0]['platform']
+                p['init_string'] = uid_qs[0]['init_string']
+                p['init_string_app'] = uid_qs[0]['init_string_app']
+
+            if p_uid in uv_dict:
+                # 设备版本号
+                p['uid_version'] = uv_dict[p_uid]['version']
+                p['ucode'] = uv_dict[p_uid]['ucode']
+                p['detect_interval'] = uv_dict[p_uid]['detect_interval']
+                p['detect_status'] = uv_dict[p_uid]['detect_status']
+                p['detect_group'] = uv_dict[p_uid]['detect_group']
+                p['region_alexa'] = uv_dict[p_uid]['region_alexa']
+                p['is_alexa'] = uv_dict[p_uid]['is_alexa']
+                p['deviceModel'] = uv_dict[p_uid]['deviceModel']
+                p['TimeZone'] = uv_dict[p_uid]['TimeZone']
+                p['TimeStatus'] = uv_dict[p_uid]['TimeStatus']
+                p['SpaceUsable'] = uv_dict[p_uid]['SpaceUsable']
+                p['SpaceSum'] = uv_dict[p_uid]['SpaceSum']
+                p['MirrorType'] = uv_dict[p_uid]['MirrorType']
+                p['RecordType'] = uv_dict[p_uid]['RecordType']
+                p['OutdoorModel'] = uv_dict[p_uid]['OutdoorModel']
+                p['WIFIName'] = uv_dict[p_uid]['WIFIName']
+                p['isDetector'] = uv_dict[p_uid]['isDetector']
+                p['DetectorRank'] = uv_dict[p_uid]['DetectorRank']
+                p['is_human'] = uv_dict[p_uid]['is_human']
+                p['is_custom_voice'] = uv_dict[p_uid]['is_custom_voice']
+                p['channels'] = uv_dict[p_uid]['channels']
+                # 设备昵称 调用影子信息昵称,先阶段不可
+                if uv_dict[p_uid]['nickname']:
+                    p['NickName'] = uv_dict[p_uid]['nickname']
+            else:
+                # 设备版本号
+                p['uid_version'] = ''
+                p['ucode'] = ''
+            data.append(p)
+        result = data
+
+        if NickName:
+            # print('NickName搜索缓存')
+            data = []
             for index, item in enumerate(result):
             for index, item in enumerate(result):
-                if (page - 1) * line <= index:
-                    if index < page * line:
-                        # 加密
-                        item['View_Password'] = self.encrypt_pwd(item['View_Password'])
-                        print(item)
-                        items.append(item)
-            print(items)
-            return response.json(0, items)
-        else:
-            return response.json(tko.code)
+                if NickName == item['NickName']:
+                    # 加密
+                    item['View_Password'] = self.encrypt_pwd(item['View_Password'])
+                    data.append(item)
+                    return response.json(0, data)
+        if uid:
+            # print('uid搜索缓存')
+            data = []
+            for index, item in enumerate(result):
+                if uid == item['UID']:
+                    # 加密
+                    item['View_Password'] = self.encrypt_pwd(item['View_Password'])
+                    data.append(item)
+                    return response.json(0, data)
+        items = []
+        # print('缓存分页')
+        for index, item in enumerate(result):
+            if (page - 1) * line <= index:
+                if index < page * line:
+                    # 加密
+                    item['View_Password'] = self.encrypt_pwd(item['View_Password'])
+                    print(item)
+                    items.append(item)
+        print(items)
+        return response.json(0, items)
 
 
     def do_fuzzy_query(self, userID, request_dict, response):
     def do_fuzzy_query(self, userID, request_dict, response):
         fuzzy = request_dict.get('fuzzy', None)
         fuzzy = request_dict.get('fuzzy', None)

+ 25 - 16
Controller/SerialNumberController.py

@@ -77,9 +77,9 @@ class SerialNumberView(View):
             algorithm = AlgorithmBaseOn35()
             algorithm = AlgorithmBaseOn35()
             for i in range(quantity):
             for i in range(quantity):
                 serial_number = algorithm.getLetter(sum)
                 serial_number = algorithm.getLetter(sum)
-                sum += 1    # sum每次递增1
+                sum += 1  # sum每次递增1
                 # 前面补0至六位
                 # 前面补0至六位
-                serial_number = (6-len(serial_number))*'0' + serial_number
+                serial_number = (6 - len(serial_number)) * '0' + serial_number
                 serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time, p2p=p2p))
                 serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time, p2p=p2p))
             # 开启事务写入
             # 开启事务写入
             with transaction.atomic():
             with transaction.atomic():
@@ -105,7 +105,7 @@ class SerialNumberView(View):
             now_time = int(time.time())
             now_time = int(time.time())
             distance = now_time - time_stamp
             distance = now_time - time_stamp
 
 
-            if token != time_stamp or distance > 60000 or distance < -60000: #为了全球化时间控制在一天内
+            if token != time_stamp or distance > 60000 or distance < -60000:  # 为了全球化时间控制在一天内
                 return response.json(404)
                 return response.json(404)
 
 
             redisObject = RedisObject()
             redisObject = RedisObject()
@@ -117,7 +117,7 @@ class SerialNumberView(View):
                 value = redisObject.lpop(key)
                 value = redisObject.lpop(key)
                 count += 1
                 count += 1
 
 
-            if count == 5 and value is False:    #暂时注释
+            if count == 5 and value is False:  # 暂时注释
                 return response.json(5)
                 return response.json(5)
 
 
             quantity = int(quantity)
             quantity = int(quantity)
@@ -130,7 +130,7 @@ class SerialNumberView(View):
             # 存在对应的企业
             # 存在对应的企业
             company_serial_qs = company_serial_qs[0:quantity]
             company_serial_qs = company_serial_qs[0:quantity]
 
 
-            #company_serial_qs = company_serial_qs.values('id', 'serial_number__serial_number', 'company__mark')
+            # company_serial_qs = company_serial_qs.values('id', 'serial_number__serial_number', 'company__mark')
             data = []
             data = []
             ids = []
             ids = []
             for serial in company_serial_qs:
             for serial in company_serial_qs:
@@ -187,7 +187,7 @@ class SerialNumberView(View):
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         time_stamp = request_dict.get('time_stamp', None)
         time_stamp = request_dict.get('time_stamp', None)
 
 
-        if serial_number and len(serial_number) == 9  and company_id:
+        if serial_number and len(serial_number) == 9 and company_id:
 
 
             token = int(CommonService.decode_data(token))
             token = int(CommonService.decode_data(token))
             time_stamp = int(time_stamp)
             time_stamp = int(time_stamp)
@@ -195,7 +195,7 @@ class SerialNumberView(View):
             now_time = int(time.time())
             now_time = int(time.time())
             distance = now_time - time_stamp
             distance = now_time - time_stamp
 
 
-            if token != time_stamp or distance > 60000 or distance < -60000: #为了全球化时间控制在一天内
+            if token != time_stamp or distance > 60000 or distance < -60000:  # 为了全球化时间控制在一天内
                 return response.json(404)
                 return response.json(404)
 
 
             mark = serial_number[6:9]
             mark = serial_number[6:9]
@@ -204,7 +204,7 @@ class SerialNumberView(View):
             savePoint = transaction.savepoint()
             savePoint = transaction.savepoint()
             try:
             try:
                 try:
                 try:
-                    if not country_id :
+                    if not country_id:
                         ip = CommonService.get_ip_address(request)
                         ip = CommonService.get_ip_address(request)
                         country_id = Device_Region().get_device_region(ip)
                         country_id = Device_Region().get_device_region(ip)
 
 
@@ -226,7 +226,8 @@ class SerialNumberView(View):
                         while count < 3:
                         while count < 3:
                             p2p = SerialNumberModel.objects.filter(serial_number=serial).values('p2p')
                             p2p = SerialNumberModel.objects.filter(serial_number=serial).values('p2p')
                             print('此序列号的p2p类型:', p2p[0]['p2p'])
                             print('此序列号的p2p类型:', p2p[0]['p2p'])
-                            uid_qs = UIDModel.objects.filter(vpg__company_id=company_serial.company.id, vpg__region_id=country_id,
+                            uid_qs = UIDModel.objects.filter(vpg__company_id=company_serial.company.id,
+                                                             vpg__region_id=country_id,
                                                              status=0, p2p_type=p2p[0]['p2p']).order_by('id')[0:10]
                                                              status=0, p2p_type=p2p[0]['p2p']).order_by('id')[0:10]
                             # uid_qs:未进行绑定的uid列表
                             # uid_qs:未进行绑定的uid列表
                             if uid_qs.exists():
                             if uid_qs.exists():
@@ -257,7 +258,10 @@ class SerialNumberView(View):
                                     'full_uid_code': CommonService.encode_data(uid.full_uid_code),
                                     'full_uid_code': CommonService.encode_data(uid.full_uid_code),
                                     'uid': CommonService.encode_data(uid.uid),
                                     'uid': CommonService.encode_data(uid.uid),
                                     'mac': CommonService.encode_data(uid.mac),
                                     'mac': CommonService.encode_data(uid.mac),
-                                    'extra': uid.uid_extra
+                                    'extra': uid.uid_extra,
+                                    'platform': uid.platform,
+                                    'init_string': uid.init_string,
+                                    'init_string_app': uid.init_string_app,
                                 }
                                 }
                                 return response.json(0, res)
                                 return response.json(0, res)
                             else:
                             else:
@@ -267,12 +271,16 @@ class SerialNumberView(View):
                     else:
                     else:
                         uid_qs = UIDCompanySerialModel.objects.filter(company_serial_id=company_serial.id)
                         uid_qs = UIDCompanySerialModel.objects.filter(company_serial_id=company_serial.id)
                         if uid_qs.exists():
                         if uid_qs.exists():
-                            uid = uid_qs.values('uid__uid', 'uid__mac', 'uid__uid_extra', 'uid__full_uid_code')[0]
+                            uid = uid_qs.values('uid__uid', 'uid__mac', 'uid__uid_extra', 'uid__full_uid_code',
+                                                'uid__platform', 'uid__init_string', 'uid__init_string_app')[0]
                             res = {
                             res = {
                                 'full_uid_code': CommonService.encode_data(uid['uid__full_uid_code']),
                                 'full_uid_code': CommonService.encode_data(uid['uid__full_uid_code']),
                                 'uid': CommonService.encode_data(uid['uid__uid']),
                                 'uid': CommonService.encode_data(uid['uid__uid']),
                                 'mac': CommonService.encode_data(uid['uid__mac']),
                                 'mac': CommonService.encode_data(uid['uid__mac']),
-                                'extra': uid['uid__uid_extra']
+                                'extra': uid['uid__uid_extra'],
+                                'platform': uid['uid__platform'],
+                                'init_string': uid['uid__init_string'],
+                                'init_string_app': uid['uid__init_string_app'],
                             }
                             }
                             return response.json(0, res)
                             return response.json(0, res)
                         else:
                         else:
@@ -308,12 +316,13 @@ class SerialNumberView(View):
             now_time = int(time.time())
             now_time = int(time.time())
             distance = now_time - time_stamp
             distance = now_time - time_stamp
 
 
-            if token != time_stamp or distance > 60000 or distance < -60000:  #为了全球化时间控制在一天内
+            if token != time_stamp or distance > 60000 or distance < -60000:  # 为了全球化时间控制在一天内
                 return response.json(404)
                 return response.json(404)
 
 
             mark = serial_number[6:9]
             mark = serial_number[6:9]
             serial = serial_number[0:6]
             serial = serial_number[0:6]
-            uid_company_serial_qs = UIDCompanySerialModel.objects.filter(company_serial__company__mark=mark, company_serial__serial_number__serial_number=serial)
+            uid_company_serial_qs = UIDCompanySerialModel.objects.filter(company_serial__company__mark=mark,
+                                                                         company_serial__serial_number__serial_number=serial)
 
 
             if uid_company_serial_qs.exists():
             if uid_company_serial_qs.exists():
                 uid = uid_company_serial_qs.values('uid__uid', 'uid__mac', 'uid__uid_extra')[0]
                 uid = uid_company_serial_qs.values('uid__uid', 'uid__mac', 'uid__uid_extra')[0]
@@ -352,7 +361,7 @@ class SerialNumberView(View):
                 uid_serial = uid_serial_qs[0]
                 uid_serial = uid_serial_qs[0]
 
 
                 iot = iotdeviceInfoModel.objects.filter(serial_number=serial)
                 iot = iotdeviceInfoModel.objects.filter(serial_number=serial)
-                #iot = iotdeviceInfoModel.objects.filter(thing_name="Ansjer_Device_" + serial_number)
+                # iot = iotdeviceInfoModel.objects.filter(thing_name="Ansjer_Device_" + serial_number)
                 if iot.exists():
                 if iot.exists():
                     iot.delete()
                     iot.delete()
 
 
@@ -409,4 +418,4 @@ class SerialNumberView(View):
             else:
             else:
                 return response.json(173)
                 return response.json(173)
         else:
         else:
-            return response.json(444)
+            return response.json(444)