5.0 KiB
5.0 KiB
平台统一作品详情页与 Remix 数据链路设计
更新时间:2026-04-28
1. 本次目标
- 平台首页、公开广场、分类列表中的每个公开作品点击后,统一先进入作品详情页,不再直接启动玩法。
- 作品详情页结构参考 TapTap 详情页:顶部封面图、作品基础信息、右侧 Remix 按钮、四项统计、简介内容、底部启动按钮。
- 删除参考图顶部 Tab,不接入评价和论坛功能,不展示“开发者的话”模块。
- 统计数据必须从数据库读模型贯穿到前端展示,禁止在前端用假字段、游玩数冒充点赞数或固定文案代替真实字段。
- Remix 按钮必须由后端事务复制公开作品为当前用户草稿,并同步增加原作品改造次数,成功后前端进入新草稿详情/结果页。
2. 详情页 UI 结构
统一详情页只做作品展示与动作入口,不承担规则说明。
- 顶部导航:返回按钮、标题“详情”、更多按钮占位;不展示“统计 / 详情 / 评价 / 论坛”Tab。
- 封面区:使用作品封面图作为主视觉,背景可用同图弱化铺底;缺图时只显示平台主题底,不新增说明文字。
- 基础信息区:
- 左侧作品图标使用作品封面或首图。
- 中间展示作品名、作者名、玩法类型。
- 右侧原 TapTap 评分位置替换为
Remix按钮。
- 统计区固定四项:
- 改造次数:
remixCount - 游玩次数:
playCount - 点赞次数:
likeCount - 上线日期:
publishedAt
- 改造次数:
- 简介区:展示玩法标签和作品简介;不追加说明类文案。
- 底部动作:主按钮为“启动”,点击后进入对应玩法运行态并记录游玩次数。
3. 数据真相源
3.1 RPG 作品
custom_world_profile增加play_count、remix_count、like_count。custom_world_gallery_entry同步这三项统计,作为公开详情和首页卡片读模型。record_custom_world_profile_play负责在公开作品启动前递增play_count,只更新已发布且未删除作品。remix_custom_world_profile在同一事务内:- 校验源作品已发布、未删除。
- 递增源作品
remix_count并刷新源作品 gallery。 - 复制源 profile payload 为当前用户草稿,清空公开编号、发布时间与统计。
- 返回新草稿 profile,供前端进入草稿详情页。
3.2 拼图作品
puzzle_work_profile保留既有play_count,新增remix_count、like_count。start_puzzle_run继续作为游玩次数递增入口。remix_puzzle_work在同一事务内:- 校验源 profile 为已发布作品。
- 递增源作品
remix_count。 - 新建当前用户拼图 Agent session,并把源作品锚点、封面、简介复制为草稿。
- 新建当前用户草稿 profile,统计归零,返回新草稿 session 与 profile。
- API facade 解析拼图
item_json/items_json时必须兼容历史公开作品缺失play_count、remix_count、like_count的 JSON,缺失值统一按0处理;新写入数据仍必须写全统计字段。
3.3 大鱼吃小鱼作品
big_fish_creation_session现有play_count继续作为游玩统计,新增remix_count、like_count、published_at。publish_big_fish_game写入published_at,公开列表和详情用它展示上线日期。record_big_fish_play继续作为游玩次数递增入口。remix_big_fish_work在同一事务内:- 校验源 session 为已发布作品。
- 递增源作品
remix_count。 - 新建当前用户创作 session,复制锚点、草稿和资源槽,阶段回到可编辑草稿态。
- 新 session 的统计归零,返回新草稿 session。
4. API 与前端接入
- 三类公开作品摘要统一返回:
playCount、remixCount、likeCount、publishedAt。 - Remix API:
- RPG:
POST /api/runtime/custom-world-gallery/{owner_user_id}/{profile_id}/remix - 拼图:
POST /api/runtime/puzzle/gallery/{profile_id}/remix - 大鱼:
POST /api/runtime/big-fish/gallery/{session_id}/remix
- RPG:
- 前端统一详情页只消费读模型字段,不自行派生统计。
- 首页卡片点击只设置统一详情状态;启动与 Remix 只能在详情页触发。
- Remix 成功后的跳转:
- RPG:进入复制出的草稿详情。
- 拼图:进入复制出的拼图结果页草稿。
- 大鱼:进入复制出的大鱼结果页草稿。
5. 验收点
- 三类作品从首页点击均先进入统一作品详情页。
- 详情页无评价、论坛 Tab,无开发者的话模块。
- 四项统计在前端、共享契约、API facade、SpacetimeDB 表之间字段一致。
- Remix 后原作品改造次数增加,新草稿归当前用户所有,且不会继承源作品统计。
- 启动公开作品会走对应后端记录入口,刷新后仍能看到递增后的游玩次数。
- 修改后运行编码检查、SpacetimeDB 绑定生成、Rust 检查和必要前端测试。