目录

easy视频-day08客户端和管理端数据统计-管理端稿件互动用户系统管理

【easy视频 | day08】客户端和管理端数据统计 + 管理端稿件、互动、用户、系统管理

https://i-blog.csdnimg.cn/direct/7e7e37d28dca41cf8ffb1f3a68cc3cc2.png

前言

本项目非原创,我只是个小小白,跟随 b 站脚步,找到老罗的这个项目,视频来源于:

本人不分享项目源码,支持项目付费!!!

回顾

昨天完成通过 es 对视频搜索、AOP校验登录。接下来还有对数据进行统计,以及管理后台的任务功能。

完成任务

1. 客户端创作中心数据统计

用户的创作中心,会对用户的视频数据进行统计:

https://i-blog.csdnimg.cn/direct/1fb6abdea18c4e47a8db4363198e8f1d.png

定时统计,将用户的视频数据定时更新到数据统计表中。

通过一个定时任务,将这个数据定时统计到数据表中:

https://i-blog.csdnimg.cn/direct/7832bd85ba28467c9db60fbc326b76d6.png

  • @Scheduled(cron = "0 0 0 * * ?") :定义一个 定时任务 ,cron表达式指定了 任务的执行时间 。这里的0 0 0 * * ?表示任务将在每天的午夜(0点0分0秒)执行一次。

1.1 统计播放量

https://i-blog.csdnimg.cn/direct/20a3e4157ced417581a233c85d4ac316.png

  • 获取一天前的日期:

    https://i-blog.csdnimg.cn/direct/e664c47452244ef481e46fe66047dc97.png

  • 根据前一天的日期,从 Redis 中获取每个视频的播放量

    https://i-blog.csdnimg.cn/direct/246b9efc88144294ad0b4ac09f0a9527.png

    Redis中存储的键值对是:“easylive:video:playcount:2025.12.08:sjkhfsdhfnd”: 1,

    用 keyList 存储前面的键,KeyValueList 存储后面的播放量,然后通过 lambda 表达式,将其分别存入 resaultMap 中。

    https://i-blog.csdnimg.cn/direct/60effff250944f6db9bceea5e64b6b00.png

  • 再通过 lambda 表达式,获取键中的最后一个 “ : ” 后的 videoId,将它们存入 List 中,然后查询每个视频 Id 对应的视频信息 videoInfoList。

  • 从 videoInfoList 中, 根据用户 Id 进行分组,查询每个用户下的每个视频的播放量的总和 ,然后将用户 ID 和总播放量分别作为 存入 videoCountMap.

  • 最后遍历 Map,将数据插入数据统计表中。

1.2 统计粉丝量

https://i-blog.csdnimg.cn/direct/c23632bc53c04311ad6029cf543ee5b2.png

https://i-blog.csdnimg.cn/direct/15e96679284f4efdaee4b9c7648845ce.png

1.3 统计评论量

和统计粉丝量一样:

https://i-blog.csdnimg.cn/direct/915484b20d90476690e1357e24d4e471.png

https://i-blog.csdnimg.cn/direct/4b4154b5afff4569bb430cda877c256d.png

video_user_id 是视频发布者的 id。

1.4 统计 点赞、收藏、投币

https://i-blog.csdnimg.cn/direct/f3eca080a3804c2a98d9f385e70d4b1a.png

从用户操作表中分组查询信息:

https://i-blog.csdnimg.cn/direct/fa6641d1f5f24dbc8820a8ff9c69d5d6.png

1.5 获取前一天的数据量、总的数据量

上面已经将分类数据的数据量,存储在数据统计表中。现在就需要获取数据量。

对每个类型的数据,既要获取它的总数量、也要获取前一天的变化数量。

https://i-blog.csdnimg.cn/direct/b4cbaebe496a4fa8bccc070a3bd9f096.png

https://i-blog.csdnimg.cn/direct/f762061cc36f485cadcf14506bbc4577.png

  • 获取前一天的变化数量直接设置条件,从数据表中查找即可。

  • 获取总的数据量:

    https://i-blog.csdnimg.cn/direct/abeecd2a08da4007a5690e8cca877c7a.png

    除粉丝量需要单独使用粉丝表来获取,其他的都可以从视频表中获取:

    注意 :如果是管理员访问该接口,则不存在粉丝概念,查询的就应该是所有的用户量。

    https://i-blog.csdnimg.cn/direct/173a833a229d4d8f9c4ccbbbf14fc5d1.png

1.6 获取一周的数量统计信息

当点击指定类别后,下方会出现对应的一周内的统计信息。

https://i-blog.csdnimg.cn/direct/9ae44c53c92741479ed47a6734a0d9f3.png

https://i-blog.csdnimg.cn/direct/37b02c85453e4192a9585cc273cd80a4.png

返回指定的类型,过去 7 天每天的数据统计信息。

2. 管理端数据统计

管理端数据统计,和客户端的数据统计很相似。只是要把客户端统计的粉丝量转为用户量,其次,统计的不仅是一个用户的数据,而是所有的数据量。

https://i-blog.csdnimg.cn/direct/8e02a494eb7540b4b4f62b31273bba7d.png

在查询条件中,就不需要加上用户Id的条件。

https://i-blog.csdnimg.cn/direct/9891fad880f147de9e19a084ae381569.png

查询过去一周每种类型的数据量,主要是在类型如果是 FANS (粉丝) 类型时,需要转为 查询用户的加入数据量

https://i-blog.csdnimg.cn/direct/04844f933ac345b2bc89f40ac3ee5317.png

https://i-blog.csdnimg.cn/direct/5a88714659224eb8af6f5d15bc81d0d0.png

3. 管理端稿件管理

之前对稿件做了审核,还剩推荐、删除、详情。

https://i-blog.csdnimg.cn/direct/53c9b64b128d43568d786a295cf0b9ba.png

推荐视频:

https://i-blog.csdnimg.cn/direct/e7ac71e4254a4411a42a4d5596752083.png

https://i-blog.csdnimg.cn/direct/f9ede6698c13412c9993a5f4b1d8614d.png

删除视频,之前已经实现了,这里只记录了接口:

https://i-blog.csdnimg.cn/direct/ba74f8679e1c458d9c16e9061e529f55.png

获取详情:

https://i-blog.csdnimg.cn/direct/8523ab17320541a8932e7c77d5f70f7b.png

3. 管理端互动管理

https://i-blog.csdnimg.cn/direct/d48fd360acfc4166ae6671692df7b3ab.png

实现过程比较简单,删除弹幕和删除评论的实现前面已经实现。

4. 管理端用户管理

https://i-blog.csdnimg.cn/direct/242b78a276e3401cb5f64694692f2269.png

5. 管理端系统管理

https://i-blog.csdnimg.cn/direct/c166cb83cb8d42c6a4d92aba1e6c6fbb.png

总结

这个项目的单服务的实现就完成了。

微服务还是这些业务,就是需要拆分为多个服务。

暂时先到这里,微服务后面再继续学啦~