5.3 KiB
5.3 KiB
观看历史功能 - 快速指南
🎯 功能说明
用户在观看直播时,系统会自动记录观看历史,并可以在"我的记录"页面查看历史记录。
✅ 已实现的功能
后台功能
- ✅ 自动记录用户观看直播间的历史
- ✅ 支持分页查询观看历史
- ✅ 支持按类型过滤(直播间/作品/用户主页)
- ✅ 自动去重(同一用户观看同一内容会更新记录)
- ✅ 记录观看次数和最后观看时间
- ✅ 数据持久化存储
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. 启动后台服务
cd live-streaming
npm install
npm start
2. 测试API(Windows)
cd live-streaming
test-api.bat
3. Android端测试
- 启动Android应用
- 登录账号
- 进入任意直播间
- 返回首页 -> "我的" -> "我的记录"
- 查看"观看历史"标签页
📊 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}
💡 使用场景
-
用户观看直播
- 用户进入直播间 → 自动记录观看历史
- 用户再次进入同一直播间 → 更新观看时间和次数
-
查看历史记录
- 用户打开"我的记录" → 查看"观看历史"标签
- 显示最近观看的直播间列表
- 点击可快速进入直播间
-
数据统计
- 记录用户观看次数
- 记录最后观看时间
- 支持按时间排序
🔧 技术细节
数据存储格式
{
"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} - 未登录用户不记录观看历史
📝 注意事项
- ⚠️ 用户必须登录才能记录观看历史
- ⚠️ 数据目前存储在JSON文件中,生产环境建议使用数据库
- ⚠️ 观看历史仅用户本人可见
- ⚠️ 同一用户观看同一内容会更新记录而不是创建新记录
🎨 界面展示
我的记录页面
┌─────────────────────────────────┐
│ ← 我的记录 │
├─────────────────────────────────┤
│ 观看历史 | 点赞记录 | 收藏记录 | 关注记录 │
├─────────────────────────────────┤
│ ┌─────────────────────────────┐ │
│ │ [封面图] 精彩直播间 [直播中] │ │
│ │ 主播:测试主播 │ │
│ │ 2024-01-05 10:00 │ │
│ └─────────────────────────────┘ │
│ ┌─────────────────────────────┐ │
│ │ [封面图] 游戏直播间 │ │
│ │ 主播:游戏主播 │ │
│ │ 2024-01-04 20:30 │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘
🔮 后续优化建议
- 添加观看时长的实时更新
- 支持用户手动删除单条历史
- 添加时间筛选功能(今天/本周/本月)
- 支持导出观看历史
- 添加隐私设置开关
- 迁移到数据库存储
📚 相关文档
- 详细实现说明:
观看历史功能实现说明.md - API测试指南:
live-streaming/test-view-history.md