|
@@ -55,25 +55,31 @@ class BusinessDataView(View):
|
|
|
return response.json(444, {'error param': 'startTime or endTime'})
|
|
|
try:
|
|
|
vod_hls_qs = VodHlsModel.objects.filter(time__range=(start_time, end_time))
|
|
|
- video_play_qs = VideoPlaybackTimeModel.objects.filter(startTime__range=(start_time, end_time))
|
|
|
+ video_play_qs = VideoPlaybackTimeModel.objects.filter(startTime__range=(start_time, end_time),
|
|
|
+ playMode='could')
|
|
|
upload_duration_qs = vod_hls_qs.values('uid').annotate(uploadFrequency=Count('uid')).order_by(
|
|
|
'uploadFrequency')
|
|
|
- device_count = len(upload_duration_qs) # 上传设备数量
|
|
|
+ upload_device_count = len(upload_duration_qs) # 上传设备数量
|
|
|
uid_list = []
|
|
|
for item in upload_duration_qs:
|
|
|
item['uploadDuration'] = vod_hls_qs.filter(uid=item['uid']).aggregate(total=Sum('sec'))['total']
|
|
|
+ item['playDuration'] = video_play_qs.filter(uid=item['uid']).aggregate(total=Sum('duration'))['total']
|
|
|
+ item['playDuration'] = item['playDuration'] if item['playDuration'] else 0
|
|
|
item['playFrequency'] = video_play_qs.filter(uid=item['uid'], playMode='cloud').count()
|
|
|
uid_list.append(item['uid'])
|
|
|
|
|
|
video_play_qs = video_play_qs.filter(~Q(uid__in=uid_list))
|
|
|
play_duration_qs = video_play_qs.values('uid').annotate(playFrequency=Count('uid')).order_by(
|
|
|
'playFrequency')
|
|
|
-
|
|
|
+ play_device_count = play_duration_qs.count()
|
|
|
for item in play_duration_qs:
|
|
|
item['uploadFrequency'] = 0
|
|
|
item['uploadDuration'] = 0
|
|
|
+ item['playDuration'] = video_play_qs.filter(uid=item['uid']).aggregate(total=Sum('duration'))['total']
|
|
|
+ item['playDuration'] = item['playDuration'] if item['playDuration'] else 0
|
|
|
res = {
|
|
|
- 'deviceCount': device_count,
|
|
|
+ 'uploadDeviceCount': upload_device_count,
|
|
|
+ 'playDeviceCount': play_device_count,
|
|
|
'vodData': list(upload_duration_qs) + list(play_duration_qs)
|
|
|
}
|
|
|
return response.json(0, res)
|
|
@@ -94,19 +100,22 @@ class BusinessDataView(View):
|
|
|
headers = {
|
|
|
'Authorization': request.META.get('HTTP_AUTHORIZATION')
|
|
|
}
|
|
|
- device_count = 0
|
|
|
+ upload_device_count = 0
|
|
|
+ play_device_count = 0
|
|
|
vod_list = []
|
|
|
for url in url_list:
|
|
|
url = url + request.path.replace('global/', '')
|
|
|
res = requests.get(url=url, params=request_dict, headers=headers)
|
|
|
result = res.json()
|
|
|
if result['result_code'] == 0:
|
|
|
- device_count += int(result['result']['deviceCount'])
|
|
|
+ upload_device_count += int(result['result']['uploadDeviceCount'])
|
|
|
+ play_device_count += int(result['result']['playDeviceCount'])
|
|
|
vod_list += result['result']['vodData']
|
|
|
else:
|
|
|
return response.json(result['result_code'])
|
|
|
res = {
|
|
|
- 'deviceCount': device_count,
|
|
|
+ 'uploadDeviceCount': upload_device_count,
|
|
|
+ 'playDeviceCount': play_device_count,
|
|
|
'vodData': vod_list
|
|
|
}
|
|
|
return response.json(0, res)
|