# 观看历史功能 - 快速指南 ## 🎯 功能说明 用户在观看直播时,系统会自动记录观看历史,并可以在"我的记录"页面查看历史记录。 ## ✅ 已实现的功能 ### 后台功能 - ✅ 自动记录用户观看直播间的历史 - ✅ 支持分页查询观看历史 - ✅ 支持按类型过滤(直播间/作品/用户主页) - ✅ 自动去重(同一用户观看同一内容会更新记录) - ✅ 记录观看次数和最后观看时间 - ✅ 数据持久化存储 ### Android端功能 - ✅ 进入直播间自动记录观看历史 - ✅ 在"我的记录"页面显示观看历史 - ✅ 点击历史记录可跳转到对应直播间 - ✅ 显示直播间封面、标题、主播名称等信息 - ✅ 显示直播状态(直播中/已结束) ## 📁 新增/修改的文件 ### 后台文件 ``` live-streaming/ ├── server/ │ ├── store/ │ │ └── viewHistoryStore.js [新增] 观看历史数据存储 │ ├── routes/ │ │ └── viewHistory.js [新增] 观看历史API路由 │ └── index.js [修改] 添加路由 ├── data/ │ └── viewHistory.json [自动生成] 数据存储文件 └── test-api.bat [新增] API测试脚本 ``` ### Android端文件 ``` android-app/app/src/main/java/com/example/livestreaming/ └── RoomDetailActivity.java [修改] 添加观看历史记录功能 ``` ## 🚀 快速测试 ### 1. 启动后台服务 ```bash cd live-streaming npm install npm start ``` ### 2. 测试API(Windows) ```bash cd live-streaming test-api.bat ``` ### 3. Android端测试 1. 启动Android应用 2. 登录账号 3. 进入任意直播间 4. 返回首页 -> "我的" -> "我的记录" 5. 查看"观看历史"标签页 ## 📊 API接口 ### 记录观看历史 ``` POST /api/front/activity/record-view Headers: Authorization: {userId} Body: { "targetType": "room", "targetId": "room-id", "targetTitle": "直播间标题", "coverImage": "封面URL", "streamerName": "主播名称", "viewDuration": 120 } ``` ### 获取观看历史 ``` GET /api/front/activity/view-history?page=1&pageSize=20&type=room Headers: Authorization: {userId} ``` ### 清除观看历史 ``` DELETE /api/front/activity/view-history?type=room Headers: Authorization: {userId} ``` ## 💡 使用场景 1. **用户观看直播** - 用户进入直播间 → 自动记录观看历史 - 用户再次进入同一直播间 → 更新观看时间和次数 2. **查看历史记录** - 用户打开"我的记录" → 查看"观看历史"标签 - 显示最近观看的直播间列表 - 点击可快速进入直播间 3. **数据统计** - 记录用户观看次数 - 记录最后观看时间 - 支持按时间排序 ## 🔧 技术细节 ### 数据存储格式 ```json { "id": 1704441600000, "userId": 1, "targetType": "room", "targetId": "room-123", "targetTitle": "精彩直播间", "coverImage": "https://example.com/cover.jpg", "streamerName": "主播名称", "viewDuration": 120, "createTime": "2024-01-05T10:00:00.000Z", "updateTime": "2024-01-05T10:02:00.000Z", "viewCount": 3 } ``` ### 认证方式 - 使用 `Authorization` 请求头传递用户ID - 格式:`Authorization: {userId}` 或 `Authorization: Bearer {userId}` - 未登录用户不记录观看历史 ## 📝 注意事项 1. ⚠️ 用户必须登录才能记录观看历史 2. ⚠️ 数据目前存储在JSON文件中,生产环境建议使用数据库 3. ⚠️ 观看历史仅用户本人可见 4. ⚠️ 同一用户观看同一内容会更新记录而不是创建新记录 ## 🎨 界面展示 ### 我的记录页面 ``` ┌─────────────────────────────────┐ │ ← 我的记录 │ ├─────────────────────────────────┤ │ 观看历史 | 点赞记录 | 收藏记录 | 关注记录 │ ├─────────────────────────────────┤ │ ┌─────────────────────────────┐ │ │ │ [封面图] 精彩直播间 [直播中] │ │ │ │ 主播:测试主播 │ │ │ │ 2024-01-05 10:00 │ │ │ └─────────────────────────────┘ │ │ ┌─────────────────────────────┐ │ │ │ [封面图] 游戏直播间 │ │ │ │ 主播:游戏主播 │ │ │ │ 2024-01-04 20:30 │ │ │ └─────────────────────────────┘ │ └─────────────────────────────────┘ ``` ## 🔮 后续优化建议 1. 添加观看时长的实时更新 2. 支持用户手动删除单条历史 3. 添加时间筛选功能(今天/本周/本月) 4. 支持导出观看历史 5. 添加隐私设置开关 6. 迁移到数据库存储 ## 📚 相关文档 - 详细实现说明:`观看历史功能实现说明.md` - API测试指南:`live-streaming/test-view-history.md`