feat(interaction): 点赞与评论按集统计

This commit is contained in:
Zhou Weidong committed 2026-10-21 15:56:26 +08:00
1 parent c7ff729f84
commit c6f729fb27
28 files changed
+683 -41

No files matched your search

+59
View File
@@ -0,0 +1,59 @@
# K89 点赞/评论按集、收藏/热度按剧实施计划
## 目标
- 收藏、热度继续归属整部剧。
- 点赞、评论归属具体剧集:新增 `drama_episode.like_count`,`content_like` 使用 `EPISODE` 目标。
- App 卡片、详情、播放响应按当前集装配点赞/评论;后台短剧/剧集页提供对应汇总与只读展示。
## FruitServer A
1. 数据库
- 新增 `sql/migrate-k89-episode-like.sql`,只提交不执行。
- `sql/schema-phase1.sql` 的 drama_episode 增量字段补 like_count,默认 0。
2. 分集点赞
- `DramaEpisode` 增加 likeCount;`EpisodeService` 提供原子增减与批量 SUM。
- `LikeService` 增加 `TYPE_EPISODE`,校验已上线剧集的已上线分集,切换时同步分集计数,返回该集最新值。
- 保留 DRAMA/COMMENT 点赞兼容。
3. 分集评论
- `CommentService.countByEpisodes` 按 episode_id 批量分组统计未删除评论。
- `/app/comments/count` 增加可选 episodeId;传集数返回该集,只有 dramaId 时维持全剧兼容语义。
4. App 装配
- 卡片 preview 集的 likeCount/commentCount 写入卡片;favoriteCount/viewCount 仍取剧。
- 详情 episodes[] 每项增加 likeCount/commentCount。
- 播放响应增加 episodeId 对应的 likeCount/commentCount。
5. 后台
- EpisodeRespVO 增加本集 like/comment 与所属剧 favorite/heat;Controller.list 批量回填。
- EpisodeSaveReqVO 增加可空 likeCount,update 仅覆盖非 null,负数 BAD_REQUEST。
- DramaRespVO likeCount 改为分集 SUM,commentCount 保持全剧汇总;分页一次批量聚合避免 N+1。
- 更新 API 契约。
6. 测试
- EPISODE 点赞 +1/-1、不越界、目标不存在。
- App 卡片按 preview 集、剧级 favorite/heat。
- 后台分集列表计数与剧级收藏/热度。
- 短剧分页 likeCount 为分集汇总。
## ReelShortWeb B
1. EpisodeItem / EpisodeSaveData 增加对应互动字段。
2. 剧集表格增加本集点赞、评论,以及所属剧收藏、热度列。
3. 编辑弹窗增加本集点赞输入和评论只读;“按集实时统计”。
4. 短剧管理保持收藏/热度可编辑,点赞/评论展示为后端只读汇总。
## 风险与处理
- 存量 `drama.like_count` 保留不删,不回填分集;新展示以分集 SUM 为准。
- App 评论数按 preview 集统计,只有 episodeId 为空的历史评论仍计入全剧汇总。
- 评论/点赞接口保持匿名/登录既有安全语义,不新增第三方依赖。
- 迁移脚本由 PM 执行;本地门禁不访问真实数据库。
## 门禁与 Git
- FruitServer:`mvn test` 全过;提交 `feat(interaction): 点赞与评论按集统计`;`--no-ff` 合回 develop 并 push。
- ReelShortWeb:`pnpm ts:check`、`pnpm build:dev` 通过;提交 `feat(admin): 剧集列表展示分集互动数据`;`--no-ff` 合回 develop 并 push。
- 作者统一 `Zhou Weidong <502333560@qq.com>`;禁止 `git add -A`;各自 PROGRESS 追加 K89 留痕。