diff --git a/server/apps/vod/serializers.py b/server/apps/vod/serializers.py index 6c03717..5fcc67c 100644 --- a/server/apps/vod/serializers.py +++ b/server/apps/vod/serializers.py @@ -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'] diff --git a/server/apps/vod/views.py b/server/apps/vod/views.py index 884a9e0..6fadc33 100644 --- a/server/apps/vod/views.py +++ b/server/apps/vod/views.py @@ -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 diff --git a/server/apps/vod/views2.py b/server/apps/vod/views2.py index 208b268..7a877ed 100644 --- a/server/apps/vod/views2.py +++ b/server/apps/vod/views2.py @@ -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']])) \ No newline at end of file