pengzhibo168 5 жил өмнө
parent
commit
09fa7eec5a

+ 72 - 60
Controller/EquipmentManagerV3.py

@@ -6,14 +6,14 @@ import traceback
 import oss2
 import oss2
 from django.db.models import Q
 from django.db.models import Q
 from django.views.generic.base import View
 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 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
 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
 from Service.ModelService import ModelService
 from Service.ModelService import ModelService
-
+import time,json
 
 
 class EquipmentManagerV3(View):
 class EquipmentManagerV3(View):
 
 
@@ -129,65 +129,77 @@ class EquipmentManagerV3(View):
         if page <= 0:
         if page <= 0:
             return response.json(0)
             return response.json(0)
         if tko.code == 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:
         else:
             return response.json(tko.code)
             return response.json(tko.code)
 
 

+ 3 - 1
Controller/UIDPreview.py

@@ -28,7 +28,7 @@ import time
 
 
 import oss2
 import oss2
 from django.views.generic.base import View
 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 Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
 from Model.models import UID_Preview, Device_Info
 from Model.models import UID_Preview, Device_Info
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
@@ -79,6 +79,8 @@ class UIDPreview(View):
             bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
             bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
 
 
             dvqs = Device_Info.objects.filter(UID=uid, userID_id=userID)
             dvqs = Device_Info.objects.filter(UID=uid, userID_id=userID)
+            redisObj = RedisObject(db=8)
+            redisObj.del_data(key=userID+userID)
             upqs = UID_Preview.objects.filter(uid=uid, channel=channel)
             upqs = UID_Preview.objects.filter(uid=uid, channel=channel)
             if dvqs.exists():
             if dvqs.exists():
                 if upqs.exists():
                 if upqs.exists():