|
@@ -36,25 +36,26 @@ class IcloudServiceView(View):
|
|
|
|
|
|
def validation(self, request_dict, operation, request):
|
|
def validation(self, request_dict, operation, request):
|
|
response = ResponseObject()
|
|
response = ResponseObject()
|
|
- tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
|
|
|
|
- response.lang = tko.lang
|
|
|
|
- user_id = tko.userID
|
|
|
|
- if tko.code != 0:
|
|
|
|
- return response.json(tko.code)
|
|
|
|
- if operation == 'vodUpload': # 云存上传云盘
|
|
|
|
- return self.vod_upload(request_dict, response, user_id)
|
|
|
|
- elif operation == 'getUploadUrl': # 获取s3上传地址
|
|
|
|
- return self.get_upload_url(request_dict, response, user_id)
|
|
|
|
- elif operation == 'localUpload': # 本地上传云盘
|
|
|
|
- return self.local_upload(request_dict, response, user_id)
|
|
|
|
- elif operation == 'deleteIcloudRecord': # 删除云盘记录
|
|
|
|
- return self.delete_icloud_record(request_dict, response, user_id)
|
|
|
|
- elif operation == 'getIcloudList': # 获取云盘播放列表
|
|
|
|
- return self.get_icloud_list(request_dict, response, user_id)
|
|
|
|
- elif operation == 'icloudPlay': # 云盘播放
|
|
|
|
- return self.icloud_play(request_dict, response, user_id)
|
|
|
|
|
|
+ if operation == 'icloudPlay': # 云盘播放
|
|
|
|
+ return self.icloud_play(request_dict, response)
|
|
else:
|
|
else:
|
|
- return response.json(404)
|
|
|
|
|
|
+ tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'))
|
|
|
|
+ response.lang = tko.lang
|
|
|
|
+ user_id = tko.userID
|
|
|
|
+ if tko.code != 0:
|
|
|
|
+ return response.json(tko.code)
|
|
|
|
+ if operation == 'vodUpload': # 云存上传云盘
|
|
|
|
+ return self.vod_upload(request_dict, response, user_id)
|
|
|
|
+ elif operation == 'getUploadUrl': # 获取s3上传地址
|
|
|
|
+ return self.get_upload_url(request_dict, response, user_id)
|
|
|
|
+ elif operation == 'localUpload': # 本地上传云盘
|
|
|
|
+ return self.local_upload(request_dict, response, user_id)
|
|
|
|
+ elif operation == 'deleteIcloudRecord': # 删除云盘记录
|
|
|
|
+ return self.delete_icloud_record(request_dict, response, user_id)
|
|
|
|
+ elif operation == 'getIcloudList': # 获取云盘播放列表
|
|
|
|
+ return self.get_icloud_list(request_dict, response, user_id)
|
|
|
|
+ else:
|
|
|
|
+ return response.json(404)
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
def vod_upload(request_dict, response, user_id):
|
|
def vod_upload(request_dict, response, user_id):
|
|
@@ -403,12 +404,12 @@ class IcloudServiceView(View):
|
|
icloud_list = []
|
|
icloud_list = []
|
|
use_details_qs = IcloudUseDetails.objects.filter(user_id=user_id).values('id')
|
|
use_details_qs = IcloudUseDetails.objects.filter(user_id=user_id).values('id')
|
|
if not use_details_qs.exists():
|
|
if not use_details_qs.exists():
|
|
- return response.json(173)
|
|
|
|
|
|
+ return response.json(911)
|
|
use_details_id = use_details_qs[0]['id']
|
|
use_details_id = use_details_qs[0]['id']
|
|
all_size = IcloudService.objects.filter(Q(use_details_id=use_details_id), Q(use_status=0),
|
|
all_size = IcloudService.objects.filter(Q(use_details_id=use_details_id), Q(use_status=0),
|
|
Q(end_time__gt=now_time) | Q(end_time=0)).values(
|
|
Q(end_time__gt=now_time) | Q(end_time=0)).values(
|
|
'size').aggregate(total_size=Sum('size'))['total_size']
|
|
'size').aggregate(total_size=Sum('size'))['total_size']
|
|
- all_size = all_size * 1024 if all_size else 0 # 转换单位为MB
|
|
|
|
|
|
+ all_size = float(all_size * 1024) if all_size else 0 # 转换单位为MB
|
|
icloud_record_qs = IcloudStorageRecord.objects.filter(user_id=user_id)
|
|
icloud_record_qs = IcloudStorageRecord.objects.filter(user_id=user_id)
|
|
if start_time and end_time: # 按时间段查询
|
|
if start_time and end_time: # 按时间段查询
|
|
icloud_record_qs = icloud_record_qs.filter(time_stamp__gte=start_time, time_stamp__lt=end_time)
|
|
icloud_record_qs = icloud_record_qs.filter(time_stamp__gte=start_time, time_stamp__lt=end_time)
|
|
@@ -420,7 +421,7 @@ class IcloudServiceView(View):
|
|
'time_stamp', 'file_type').order_by('-time_stamp')[
|
|
'time_stamp', 'file_type').order_by('-time_stamp')[
|
|
(page - 1) * line:page * line]
|
|
(page - 1) * line:page * line]
|
|
if not icloud_record_qs.exists():
|
|
if not icloud_record_qs.exists():
|
|
- return response.json(0, icloud_list)
|
|
|
|
|
|
+ return response.json(0, {'icloudList': icloud_list, 'notShow': 0})
|
|
bucket_id = icloud_record_qs[0]['bucket_id']
|
|
bucket_id = icloud_record_qs[0]['bucket_id']
|
|
bucket_qs = VodBucketModel.objects.filter(id=bucket_id).values('bucket', 'region', 'mold')
|
|
bucket_qs = VodBucketModel.objects.filter(id=bucket_id).values('bucket', 'region', 'mold')
|
|
if not bucket_qs.exists():
|
|
if not bucket_qs.exists():
|
|
@@ -441,7 +442,7 @@ class IcloudServiceView(View):
|
|
time_stamp = item['time_stamp']
|
|
time_stamp = item['time_stamp']
|
|
file_type = item['file_type']
|
|
file_type = item['file_type']
|
|
total_size += float(item['size'])
|
|
total_size += float(item['size'])
|
|
- uid_token = TokenObject().encryption(data={'uid': uid})
|
|
|
|
|
|
+ uid_token = TokenObject().encryption(data={'uid': uid, 'user_id': user_id})
|
|
res_data = {
|
|
res_data = {
|
|
'is_show': 1 if total_size < all_size else 0, # 只展示剩余容量的数据,超过的部分不展示
|
|
'is_show': 1 if total_size < all_size else 0, # 只展示剩余容量的数据,超过的部分不展示
|
|
'time_stamp': time_stamp,
|
|
'time_stamp': time_stamp,
|
|
@@ -484,17 +485,17 @@ class IcloudServiceView(View):
|
|
res_data['icloud_url'] = response_url
|
|
res_data['icloud_url'] = response_url
|
|
res_data['sec'] = item['sec']
|
|
res_data['sec'] = item['sec']
|
|
icloud_list.append(res_data)
|
|
icloud_list.append(res_data)
|
|
- return response.json(0, icloud_list)
|
|
|
|
|
|
+ not_show = total_size - all_size if total_size > all_size else 0
|
|
|
|
+ return response.json(0, {'icloudList': icloud_list, 'notShow': not_show})
|
|
except Exception as e:
|
|
except Exception as e:
|
|
LOGGER.info('获取云盘播放列表异常:{}'.format(repr(e)))
|
|
LOGGER.info('获取云盘播放列表异常:{}'.format(repr(e)))
|
|
return response.json(500)
|
|
return response.json(500)
|
|
|
|
|
|
@staticmethod
|
|
@staticmethod
|
|
- def icloud_play(request_dict, response, user_id):
|
|
|
|
|
|
+ def icloud_play(request_dict, response):
|
|
"""
|
|
"""
|
|
云盘播放
|
|
云盘播放
|
|
@param request_dict: 请求参数
|
|
@param request_dict: 请求参数
|
|
- @param user_id: 用户id
|
|
|
|
@request_dict time_stamp: 时间戳
|
|
@request_dict time_stamp: 时间戳
|
|
@request_dict uid: 设备uid
|
|
@request_dict uid: 设备uid
|
|
@request_dict channel: 设备通道
|
|
@request_dict channel: 设备通道
|
|
@@ -510,7 +511,9 @@ class IcloudServiceView(View):
|
|
return response.json(444, {'error param': 'time_stamp, uid_token, channel, file_type'})
|
|
return response.json(444, {'error param': 'time_stamp, uid_token, channel, file_type'})
|
|
if file_type != '1':
|
|
if file_type != '1':
|
|
return response.json(444, {'error param': 'file_type'})
|
|
return response.json(444, {'error param': 'file_type'})
|
|
- uid = jwt.decode(uid_token, OAUTH_ACCESS_TOKEN_SECRET, algorithms='HS256').get('uid', '')
|
|
|
|
|
|
+ token = jwt.decode(uid_token, OAUTH_ACCESS_TOKEN_SECRET, algorithms='HS256')
|
|
|
|
+ uid = token.get('uid', '')
|
|
|
|
+ user_id = token.get('user_id', '')
|
|
icloud_record_qs = IcloudStorageRecord.objects.filter(user_id=user_id, uid=uid, channel=channel,
|
|
icloud_record_qs = IcloudStorageRecord.objects.filter(user_id=user_id, uid=uid, channel=channel,
|
|
file_type=file_type,
|
|
file_type=file_type,
|
|
time_stamp=time_stamp).values('bucket_id', 'fg')
|
|
time_stamp=time_stamp).values('bucket_id', 'fg')
|