147
docs/prd/MY_TAB_BROWSE_HISTORY_PRD_2026-04-16.md
Normal file
147
docs/prd/MY_TAB_BROWSE_HISTORY_PRD_2026-04-16.md
Normal file
@@ -0,0 +1,147 @@
|
||||
# “我的”Tab 历史浏览 PRD
|
||||
|
||||
更新时间:`2026-04-16`
|
||||
|
||||
## 0. 目标
|
||||
|
||||
把“历史浏览”从本地浏览记录升级成账号级内容回访能力,让玩家能找回最近看过的作品,并支持跨设备同步。
|
||||
|
||||
---
|
||||
|
||||
## 1. 当前现状与问题
|
||||
|
||||
当前仓库里 `platformBrowseHistory.ts` 采用 `localStorage` 方案,存在明显限制:
|
||||
|
||||
1. 仅本机可见
|
||||
2. 浏览记录上限固定且不可运营
|
||||
3. 删除缓存后全部丢失
|
||||
4. 无法用于账号级推荐和召回
|
||||
|
||||
---
|
||||
|
||||
## 2. 本期范围
|
||||
|
||||
## 2.1 本期要做
|
||||
|
||||
1. 账号级历史浏览记录
|
||||
2. 历史浏览列表接口
|
||||
3. 浏览记录去重与排序
|
||||
4. 清空历史入口
|
||||
|
||||
## 2.2 本期不做
|
||||
|
||||
1. 浏览历史搜索
|
||||
2. 收藏夹合并
|
||||
3. 基于历史的复杂推荐页
|
||||
|
||||
---
|
||||
|
||||
## 3. 详细设计
|
||||
|
||||
## 3.1 记录时机
|
||||
|
||||
用户进入公开作品详情页时写入浏览记录。
|
||||
|
||||
不写入的场景:
|
||||
|
||||
- 草稿世界
|
||||
- 未真正打开详情的列表曝光
|
||||
|
||||
## 3.2 列表规则
|
||||
|
||||
每条记录展示:
|
||||
|
||||
- 世界名
|
||||
- 作者名
|
||||
- 摘要
|
||||
- 封面
|
||||
- 最近浏览时间
|
||||
|
||||
排序:
|
||||
|
||||
- 按 `visitedAt` 倒序
|
||||
|
||||
去重:
|
||||
|
||||
- 同一用户对同一作品只保留最近一次
|
||||
|
||||
## 3.3 管理动作
|
||||
|
||||
支持:
|
||||
|
||||
1. 点击记录进入作品详情
|
||||
2. 清空全部浏览历史
|
||||
|
||||
首期不做单条删除,避免交互复杂化。
|
||||
|
||||
---
|
||||
|
||||
## 4. 后端设计
|
||||
|
||||
## 4.1 数据模型
|
||||
|
||||
建议新增:
|
||||
|
||||
### `user_browse_history`
|
||||
|
||||
- `id`
|
||||
- `user_id`
|
||||
- `owner_user_id`
|
||||
- `profile_id`
|
||||
- `world_name`
|
||||
- `subtitle`
|
||||
- `summary_text`
|
||||
- `cover_image_src`
|
||||
- `theme_mode`
|
||||
- `author_display_name`
|
||||
- `visited_at`
|
||||
|
||||
并对 `user_id + owner_user_id + profile_id` 做唯一约束或 upsert。
|
||||
|
||||
## 4.2 接口
|
||||
|
||||
### `POST /api/profile/browse-history`
|
||||
|
||||
用途:
|
||||
|
||||
- 进入作品详情时写入记录
|
||||
|
||||
### `GET /api/profile/browse-history`
|
||||
|
||||
返回:
|
||||
|
||||
- 浏览历史列表
|
||||
|
||||
### `DELETE /api/profile/browse-history`
|
||||
|
||||
用途:
|
||||
|
||||
- 清空当前账号浏览历史
|
||||
|
||||
---
|
||||
|
||||
## 5. 迁移策略
|
||||
|
||||
为了兼容当前本地历史:
|
||||
|
||||
1. 用户首次登录后可尝试把本地历史批量上报一次
|
||||
2. 服务端落库成功后,以服务端历史为主
|
||||
3. 本地历史保留为短期兜底缓存,不再作为主数据源
|
||||
|
||||
---
|
||||
|
||||
## 6. 前端实现要求
|
||||
|
||||
1. “我的”页优先读服务端历史
|
||||
2. 清空历史前给出确认
|
||||
3. 空态保持轻量,不写规则说明
|
||||
4. 失败时保留当前列表,不做闪断
|
||||
|
||||
---
|
||||
|
||||
## 7. 验收标准
|
||||
|
||||
1. 浏览详情后能在历史浏览中看到记录
|
||||
2. 同一作品重复浏览只保留最新一条
|
||||
3. 跨设备登录后可看到同一份历史
|
||||
4. 清空后列表立即刷新
|
||||
Reference in New Issue
Block a user