2.9 KiB
2.9 KiB
K88 内容类型、互动数据编辑与分类 Feed 实施计划
目标
- 后台短剧管理支持内容类型和互动数据编辑:收藏、点赞、热度可编辑,评论数实时统计只读。
- 新增
drama.drama_type,取值为ANIME/LIVE,默认LIVE。 - App 新增
GET /app/feed,支持ANIME,LIVE多选类型,不传类型时返回推荐全部。
FruitServer A
-
数据库
- 新增
sql/migrate-k88-drama-type.sql,只提交迁移文件,不执行数据库变更。 sql/schema.sql的 drama 建表语句补drama_type,默认LIVE。
- 新增
-
后台管理
Drama、DramaSaveReqVO、DramaRespVO增加dramaType。DramaSaveReqVO增加可空favoriteCount、likeCount、heat;服务层校验非负,heat映射view_count。- create 默认内容类型 LIVE、互动数 0;update 仅覆盖请求非 null 的互动字段。
- 后台分页增加
dramaTypes多选过滤,并保持 CommentService 批量回填评论数。
-
App Feed
AppDramaCardVO增加dramaType,现有 home/discover/detail 仅新增字段。GET /app/feed支持types、cursor、size;size 默认 20、最大 50。- 排序为
recommend_weight DESC NULLS LAST, view_count DESC, id DESC。 - cursor 使用最后一条 drama id,服务端反查其 recommendWeight/viewCount/id,再按三元组做 keyset 查询,避免 offset 翻页重漏。
- 卡片复用现有
toCards,确保 preview、互动数、评论数与首页一致。 - 更新
docs/api-phase1.md的 dramaType 与/app/feed契约。
-
测试
/app/feed:全部、ANIME、ANIME+LIVE、游标翻页不重不漏。- 后台 update:部分字段更新、heat 写 viewCount、负数与非法 dramaType 报错。
ReelShortWeb B
- 类型定义补齐 dramaType、favoriteCount、likeCount、commentCount、heat。
- 短剧列表增加内容类型筛选和标签列,播放量列改为热度,增加收藏/点赞/评论列。
- 编辑弹窗增加必填内容类型、互动数据区块;评论数只读。
- 不改审核、发布、删除逻辑。
风险与处理
- 推荐排序包含可空 recommend_weight,SQL 与 Java 条件必须显式处理 NULLS LAST。
- 三字段排序不能只按 id 做 cursor,需以 cursor id 反查上一页最后一条的排序值。
- 存量数据不主动修改,迁移默认 LIVE;数据库脚本由 PM 执行。
- 全部改动只使用显式文件暂存,不执行
git add -A,不改 specs 与 Flutter 客户端。
门禁与 Git
- FruitServer:
mvn test全过;提交feat(content): 新增内容类型与首页分类 feed;--no-ff合回 develop 并 push。 - ReelShortWeb:
pnpm ts:check、pnpm build:dev通过;提交feat(admin): 短剧列表展示并编辑互动数据;--no-ff合回 develop 并 push。 - 作者统一
Zhou Weidong <502333560@qq.com>;各自 PROGRESS 追加 K88 留痕。