|
@@ -21,6 +21,10 @@ from Ansjer.config import SERVER_DOMAIN
|
|
|
import jwt
|
|
|
from Service.CommonService import CommonService
|
|
|
from Model.models import UID_Bucket
|
|
|
+from Object.RedisObject import RedisObject
|
|
|
+import time
|
|
|
+import json
|
|
|
+
|
|
|
|
|
|
class DeviceShareView(View):
|
|
|
|
|
@@ -60,33 +64,43 @@ class DeviceShareView(View):
|
|
|
def do_generate_token_url(self, userID, request_dict, response):
|
|
|
UID = request_dict.get('UID', None)
|
|
|
dvqs = Device_Info.objects.filter(UID=UID, userID_id=userID, isShare=False).values('NickName')
|
|
|
- userqs = Device_User.objects.filter(userID=userID).values('username','userEmail','phone')
|
|
|
+ userqs = Device_User.objects.filter(userID=userID).values('username', 'userEmail', 'phone')
|
|
|
if dvqs:
|
|
|
data = {'sharer': userID, 'UID': UID}
|
|
|
- share_token = jwt.encode(data, '.#^^&', algorithm='HS256')
|
|
|
- # share_url = '{SERVER_DOMAIN}deviceShare/confirm?shareToken={shareToken}' \
|
|
|
- # .format(SERVER_DOMAIN=SERVER_DOMAIN, shareToken=share_token.decode('utf-8'))
|
|
|
- # return response.json(0, {'share_url': share_url})
|
|
|
- if userqs[0]['username']:
|
|
|
- share_user = userqs[0]['username']
|
|
|
- elif userqs[0]['userEmail']:
|
|
|
- share_user = userqs[0]['userEmail']
|
|
|
- elif userqs[0]['phone']:
|
|
|
- share_user = userqs[0]['phone']
|
|
|
+ # share_token = jwt.encode(data, '.#^^&', algorithm='HS256').decode('utf-8')
|
|
|
+ redisObj = RedisObject()
|
|
|
+ share_token = str(int(time.time())) + CommonService.RandomStr(8)
|
|
|
+ if redisObj.set_data(key=share_token, val=json.dumps(data),expire=3600):
|
|
|
+ # share_url = '{SERVER_DOMAIN}deviceShare/confirm?shareToken={shareToken}' \
|
|
|
+ # .format(SERVER_DOMAIN=SERVER_DOMAIN, shareToken=share_token.decode('utf-8'))
|
|
|
+ # return response.json(0, {'share_url': share_url})
|
|
|
+ if userqs[0]['username']:
|
|
|
+ share_user = userqs[0]['username']
|
|
|
+ elif userqs[0]['userEmail']:
|
|
|
+ share_user = userqs[0]['userEmail']
|
|
|
+ elif userqs[0]['phone']:
|
|
|
+ share_user = userqs[0]['phone']
|
|
|
+ else:
|
|
|
+ share_user = ''
|
|
|
+ return response.json(0, {
|
|
|
+ 'shareToken': share_token,
|
|
|
+ 'deviceName': dvqs[0]['NickName'],
|
|
|
+ 'shareUser': share_user,
|
|
|
+ })
|
|
|
else:
|
|
|
- share_user = ''
|
|
|
- return response.json(0, {
|
|
|
- 'shareToken': share_token.decode('utf-8'),
|
|
|
- 'deviceName': dvqs[0]['NickName'],
|
|
|
- 'shareUser': share_user,
|
|
|
- })
|
|
|
+ return response.json(10,'生成失败')
|
|
|
else:
|
|
|
return response.json(173)
|
|
|
|
|
|
def do_confirm(self, userID, request_dict, response):
|
|
|
shareToken = request_dict.get('shareToken', None)
|
|
|
if shareToken is not None:
|
|
|
- data = jwt.decode(shareToken, '.#^^&', algorithms='HS256')
|
|
|
+ # data = jwt.decode(shareToken, '.#^^&', algorithms='HS256')
|
|
|
+ redisObj = RedisObject()
|
|
|
+ data_str = redisObj.get_data(key=shareToken)
|
|
|
+ if not data_str:
|
|
|
+ return response.json(404)
|
|
|
+ data = json.loads(data_str)
|
|
|
# 分享者userID
|
|
|
sharer = data.get('sharer', None)
|
|
|
# 分享的uid
|
|
@@ -117,12 +131,12 @@ class DeviceShareView(View):
|
|
|
return response.json(10, repr(e))
|
|
|
else:
|
|
|
dvqs = Device_Info.objects.filter(id=deviceId).values('id', 'userID', 'NickName', 'UID',
|
|
|
- 'View_Account',
|
|
|
- 'View_Password', 'ChannelIndex', 'Type',
|
|
|
- 'isShare',
|
|
|
- 'primaryUserID', 'primaryMaster',
|
|
|
- 'data_joined', 'version',
|
|
|
- 'isVod', 'isExist')
|
|
|
+ 'View_Account',
|
|
|
+ 'View_Password', 'ChannelIndex', 'Type',
|
|
|
+ 'isShare',
|
|
|
+ 'primaryUserID', 'primaryMaster',
|
|
|
+ 'data_joined', 'version',
|
|
|
+ 'isVod', 'isExist')
|
|
|
dvql = CommonService.qs_to_list(dvqs)
|
|
|
ubqs = UID_Bucket.objects.filter(uid=UID). \
|
|
|
values('bucket__content', 'status', 'channel', 'endTime', 'uid')
|
|
@@ -141,7 +155,7 @@ class DeviceShareView(View):
|
|
|
UID = request_dict.get('UID', None)
|
|
|
if UID is not None:
|
|
|
# 查询分享获得的用户
|
|
|
- qs = Device_Info.objects.filter(UID=UID, isShare=True, primaryUserID=userID,isExist=1). \
|
|
|
+ qs = Device_Info.objects.filter(UID=UID, isShare=True, primaryUserID=userID, isExist=1). \
|
|
|
values('userID__NickName', 'userID__username', 'userID__userEmail', 'userID__phone', 'id')
|
|
|
data = []
|
|
|
# print(qs)
|