|
@@ -6,14 +6,14 @@ import traceback
|
|
|
import oss2
|
|
|
from django.db.models import Q
|
|
|
from django.views.generic.base import View
|
|
|
-
|
|
|
+from Object.RedisObject import RedisObject
|
|
|
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 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):
|
|
|
|
|
@@ -129,65 +129,77 @@ class EquipmentManagerV3(View):
|
|
|
if page <= 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))
|
|
|
+ redisObj = RedisObject(db=8)
|
|
|
+ redis_value = redisObj.get_data(key=userID+userID)
|
|
|
+ if redis_value == False:
|
|
|
+ print('缓存不存在就开始添加到缓存')
|
|
|
+ userID = tko.userID
|
|
|
+ dvqs = Device_Info.objects.filter(userID_id=userID)
|
|
|
+ # # 过滤已重置的设备
|
|
|
+ dvqs = dvqs.filter(~Q(isExist=2))
|
|
|
|
|
|
- if NickName:
|
|
|
- dvqs = dvqs.filter(NickName__icontains=NickName)
|
|
|
- if uid:
|
|
|
- dvqs = dvqs.filter(UID=uid)
|
|
|
- dvql = dvqs[(page - 1) * line:page * line]. \
|
|
|
- values('id', 'userID', 'NickName', 'UID', 'View_Account',
|
|
|
- 'View_Password', 'ChannelIndex', 'Type', 'isShare',
|
|
|
- 'primaryUserID', 'primaryMaster', 'data_joined',
|
|
|
- 'version',
|
|
|
- 'isVod', 'isExist', 'NotificationMode')
|
|
|
- dvls = CommonService.qs_to_list(dvql)
|
|
|
- uid_list = []
|
|
|
- for dvl in dvls:
|
|
|
- uid_list.append(dvl['UID'])
|
|
|
- # if dvl['isShare'] is False:
|
|
|
- # 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('uid', 'version', 'nickname','ucode')
|
|
|
- uv_dict = {}
|
|
|
- for us in us_qs:
|
|
|
- uv_dict[us['uid']] = {'version': us['version'], 'nickname': us['nickname'],'ucode':us['ucode']}
|
|
|
- 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']
|
|
|
- # 设备昵称 调用影子信息昵称,先阶段不可
|
|
|
- if uv_dict[p_uid]['nickname']:
|
|
|
- p['NickName'] = uv_dict[p_uid]['nickname']
|
|
|
- else:
|
|
|
- # 设备版本号
|
|
|
- p['uid_version'] = ''
|
|
|
- p['ucode'] = ''
|
|
|
- data.append(p)
|
|
|
- return response.json(0, data)
|
|
|
+ if NickName:
|
|
|
+ dvqs = dvqs.filter(NickName__icontains=NickName)
|
|
|
+ if uid:
|
|
|
+ dvqs = dvqs.filter(UID=uid)
|
|
|
+ dvql = dvqs[(page - 1) * line:page * line]. \
|
|
|
+ values('id', 'userID', 'NickName', 'UID', 'View_Account',
|
|
|
+ 'View_Password', 'ChannelIndex', 'Type', 'isShare',
|
|
|
+ 'primaryUserID', 'primaryMaster', 'data_joined',
|
|
|
+ 'version',
|
|
|
+ 'isVod', 'isExist', 'NotificationMode')
|
|
|
+ dvls = CommonService.qs_to_list(dvql)
|
|
|
+ uid_list = []
|
|
|
+ for dvl in dvls:
|
|
|
+ uid_list.append(dvl['UID'])
|
|
|
+ print(dvl['isShare']);
|
|
|
+ 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('uid', 'version', 'nickname','ucode')
|
|
|
+ uv_dict = {}
|
|
|
+ for us in us_qs:
|
|
|
+ uv_dict[us['uid']] = {'version': us['version'], 'nickname': us['nickname'],'ucode':us['ucode']}
|
|
|
+ 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']
|
|
|
+ # 设备昵称 调用影子信息昵称,先阶段不可
|
|
|
+ if uv_dict[p_uid]['nickname']:
|
|
|
+ p['NickName'] = uv_dict[p_uid]['nickname']
|
|
|
+ else:
|
|
|
+ # 设备版本号
|
|
|
+ p['uid_version'] = ''
|
|
|
+ p['ucode'] = ''
|
|
|
+ data.append(p)
|
|
|
+ # 缓存时间为一个钟
|
|
|
+ redisObj.set_data(key=userID+userID, val=data, expire=3600)
|
|
|
+ return response.json(0, data)
|
|
|
+ else:
|
|
|
+ print('去缓存找数据')
|
|
|
+ redis_value = redis_value.replace("'", '"')
|
|
|
+ redis_value = redis_value.replace("True", 'true')
|
|
|
+ redis_value = redis_value.replace("False", 'false')
|
|
|
+ # 返回固定值
|
|
|
+ return response.json(0, json.loads(redis_value))
|
|
|
else:
|
|
|
return response.json(tko.code)
|
|
|
|