zhibo/观看历史功能-快速指南.md
xiao12feng8 a619bb1750 修复:首页标签分类+我的挚友处理+历史记录
优化:缘池界面+消息搜索界面
2026-01-05 16:47:07 +08:00

5.3 KiB
Raw Blame History

观看历史功能 - 快速指南

🎯 功能说明

用户在观看直播时,系统会自动记录观看历史,并可以在"我的记录"页面查看历史记录。

已实现的功能

后台功能

  • 自动记录用户观看直播间的历史
  • 支持分页查询观看历史
  • 支持按类型过滤(直播间/作品/用户主页)
  • 自动去重(同一用户观看同一内容会更新记录)
  • 记录观看次数和最后观看时间
  • 数据持久化存储

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. 测试APIWindows

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. 数据统计

    • 记录用户观看次数
    • 记录最后观看时间
    • 支持按时间排序

🔧 技术细节

数据存储格式

{
  "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