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

178 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 观看历史功能 - 快速指南
## 🎯 功能说明
用户在观看直播时,系统会自动记录观看历史,并可以在"我的记录"页面查看历史记录。
## ✅ 已实现的功能
### 后台功能
- ✅ 自动记录用户观看直播间的历史
- ✅ 支持分页查询观看历史
- ✅ 支持按类型过滤(直播间/作品/用户主页)
- ✅ 自动去重(同一用户观看同一内容会更新记录)
- ✅ 记录观看次数和最后观看时间
- ✅ 数据持久化存储
### 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. 测试APIWindows
```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`