This commit is contained in:
shijing 2022-12-21 15:02:19 +08:00
commit a84dc9518f
3 changed files with 6 additions and 7 deletions

View File

@ -34,7 +34,7 @@ class VideoUpdateSerializer(serializers.ModelSerializer):
class VideoListDetailSerializer(serializers.ModelSerializer):
views_n = serializers.IntegerField(source='view1_video.views', read_only=True, label="总观看次数")
viewsp_n = serializers.IntegerField(source='view1_video.viewsp', read_only=True, label="总观看")
viewsp_n = serializers.IntegerField(source='view1_video.viewsp', read_only=True, label="总观看")
class Meta:
model = Video
exclude = ['mediaurl']

View File

@ -127,7 +127,7 @@ def cal_view1(vi: ViewItem):
v1, _ = View1.objects.get_or_create(video=vi.video, defaults={"video": vi.video})
v2, _ = View2.objects.get_or_create(video=vi.video, create_by=vi.create_by, defaults={"video": vi.video, "create_by": vi.create_by})
v1.views = ViewItem.objects.filter(video=vi.video).count()
v1.viewp = View2.objects.filter(video=vi.video).count()
v1.viewsp = View2.objects.filter(video=vi.video).count()
v1.save()
def cal_view2(vi: ViewItem):
@ -204,7 +204,6 @@ class ViewItemViewSet(ListModelMixin, UpdateModelMixin, GenericViewSet):
完成播放
"""
obj = self.get_object()
obj.current = 0
v2 = View2.objects.get(video=obj.video, create_by=obj.create_by)
if v2.total_seconds >= obj.video.duration * 0.6:
v2.is_completed = True

View File

@ -50,7 +50,7 @@ class AnalyseViewSet(GenericViewSet):
sql_str = """select
u.name as "姓名",
u.username as "账号",
count(v2.is_completed is true) as "观看完成视频总数",
count(distinct v2.is_completed is true) as "观看完成视频总数",
count(distinct vi.video_id) as "观看视频总数",
count(vi.id) as "观看总次数" ,
sum(vi.total_seconds/60) as "观看总时间"
@ -60,7 +60,7 @@ class AnalyseViewSet(GenericViewSet):
left join vod_view2 v2 on v2.create_by_id = vi.create_by_id and v2.video_id = vi.video_id
where vi.create_time >= %s and vi.create_time <= %s
group by u.id
order by "观看完成视频总数" desc, "账号"
order by "观看总时间" desc, "观看完成视频总数" desc
limit %s
"""
return Response(query_all_dict(sql_str, [vdata['start_time'], vdata['end_time'], vdata['limit']]))
@ -76,7 +76,7 @@ class AnalyseViewSet(GenericViewSet):
vdata = self.is_valid(request)
sql_str = """select
o.name as "单位名称",
count(v2.is_completed is true) as "观看完成视频总数",
count(distinct v2.is_completed is true) as "观看完成视频总数",
count(distinct vi.video_id) as "观看视频总数",
count(vi.id) as "观看总次数" ,
sum(vi.total_seconds/60) as "观看总时间"
@ -87,7 +87,7 @@ class AnalyseViewSet(GenericViewSet):
left join vod_view2 v2 on v2.create_by_id = vi.create_by_id and v2.video_id = vi.video_id
where vi.create_time >= %s and vi.create_time <= %s
group by o.id
order by "观看完成视频总数" desc, o.sort
order by "观看总时间" desc, "观看完成视频总数" desc
limit %s
"""
return Response(query_all_dict(sql_str, [vdata['start_time'], vdata['end_time'], vdata['limit']]))