# “我的”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. 清空后列表立即刷新