Files
FruitServer/docs/plans/2026-10-21-K89-episode-like.md

3.0 KiB
Raw Permalink Blame History

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 留痕。