11
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-04-16 21:47:20 +08:00
parent 2456c10c63
commit 09d4c0c31b
79 changed files with 11873 additions and 2341 deletions

View File

@@ -0,0 +1,126 @@
# “我的”Tab 最近游玩 PRD
更新时间:`2026-04-16`
## 0. 目标
把“最近游玩”从单一继续游戏卡片扩成账号级最近游玩模块,让玩家可以快速回到最近推进过的作品和存档节点。
---
## 1. 当前现状与问题
当前“最近游玩”仅基于一个本地快照推导:
1. 只支持一个最近记录
2. 只要本地没有快照就没有内容
3. 无法跨设备同步
4. 无法区分多个世界和多个角色
这不符合平台化后的用户预期。
---
## 2. 本期范围
## 2.1 本期要做
1. 最近游玩列表
2. 继续游玩主动作
3. 进入作品详情或继续冒险
4. 跨设备同步最近记录
## 2.2 本期不做
1. 多存档槽管理全量页面
2. 手动置顶
3. 存档备注与重命名
---
## 3. 详细设计
## 3.1 展示结构
首屏展示 `1-5` 条最近游玩卡片。
每张卡片展示:
- 世界名
- 当前角色名
- 最近摘要
- 最近游玩时间
- 继续按钮
移动端优先横向滑动卡片,桌面端可显示为横向列表或双列卡片。
## 3.2 点击行为
1. 点击卡片主体
- 进入作品详情页,展示继续入口和存档摘要
2. 点击继续按钮
- 直接恢复最近游玩存档
如果该存档已失效:
- 给出“存档不可恢复”的明确提示
- 引导回到作品详情或重新开始
## 3.3 排序规则
`lastPlayedAt` 倒序。
若同一作品下存在多个存档:
- 只展示最近一次有效记录
---
## 4. 后端设计
## 4.1 数据模型
建议在存档或游玩记录层增加聚合:
- `user_id`
- `world_owner_user_id`
- `profile_id`
- `save_id`
- `world_name`
- `character_name`
- `continue_digest`
- `cover_image_src`
- `last_played_at`
- `is_resume_available`
## 4.2 接口
### `GET /api/profile/recent-plays`
返回:
- 最近游玩列表
### `POST /api/runtime/saves/:saveId/resume`
用途:
- 校验并恢复指定存档
---
## 5. 前端实现要求
1. 继续游玩动作必须走后端校验
2. 不允许前端自行拼装恢复上下文
3. 列表为空时展示轻量空态
4. 卡片摘要最多显示三行,保持“我的”页清爽
---
## 6. 验收标准
1. 最近游玩可以展示多个最近记录
2. 不同设备登录同一账号时列表一致
3. 点击继续后能恢复到正确存档
4. 无效存档不会让前端直接报错白屏