chenshibin преди 4 години
родител
ревизия
bb1ba5e4a9
променени са 1 файла, в които са добавени 131 реда и са изтрити 5 реда
  1. 131 5
      Controller/EquipmentManagerV2.py

+ 131 - 5
Controller/EquipmentManagerV2.py

@@ -8,7 +8,7 @@ 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 Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel
+from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, UidChannelSetModel
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -207,7 +207,133 @@ class EquipmentManagerV2(View):
 
     def do_query_reset(self, userID, request_dict, response):
         dvqs = Device_Info.objects.filter(userID_id=userID, isExist=2)
-        dvql = dvqs.values \
-            ('id', 'NickName', 'UID', 'ChannelIndex', 'Type', 'isShare')
-        res = CommonService.qs_to_list(dvql)
-        return response.json(0, res)
+        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')
+        dvls = CommonService.qs_to_list(dvql)
+        uid_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'])
+
+        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')
+        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']
+            }
+            # 从uid_channel里面取出通道配置信息
+            ucs_qs = UidChannelSetModel.objects.filter(uid__id=us['id']).values('channel', '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'],
+                    '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:
+            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['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
+
+        return response.json(0, result)