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

123 lines
3.6 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.

# 观看历史功能实现说明
## 功能概述
已成功实现观看历史记录功能,用户在观看直播时会自动记录观看历史,并可以在"我的记录"页面查看。
## 实现的功能
### 1. 后台功能
#### 新增文件
- `live-streaming/server/store/viewHistoryStore.js` - 观看历史数据存储
- `live-streaming/server/routes/viewHistory.js` - 观看历史API路由
#### 修改文件
- `live-streaming/server/index.js` - 添加观看历史路由
#### API接口
1. **记录观看历史**
- 接口:`POST /api/front/activity/record-view`
- 功能:记录用户观看直播间、作品等内容
- 参数:
```json
{
"targetType": "room", // 类型room/work/profile
"targetId": "room-id", // 目标ID
"targetTitle": "直播间标题",
"coverImage": "封面图片URL",
"streamerName": "主播名称",
"viewDuration": 120 // 观看时长(秒)
}
```
2. **获取观看历史**
- 接口:`GET /api/front/activity/view-history`
- 功能:分页获取用户的观看历史
- 参数:`page`, `pageSize`, `type`(可选,过滤类型)
3. **清除观看历史**
- 接口:`DELETE /api/front/activity/view-history`
- 功能:清除用户的观看历史
- 参数:`type`(可选,清除指定类型)
4. **删除单条记录**
- 接口:`DELETE /api/front/activity/view-history/:id`
- 功能:删除指定的观看历史记录
### 2. Android端功能
#### 修改文件
- `android-app/app/src/main/java/com/example/livestreaming/RoomDetailActivity.java`
#### 实现功能
1. **自动记录观看历史**
- 用户进入直播间时自动记录
- 房间信息加载后更新详细信息
- 未登录用户不记录
2. **显示观看历史**
- 在"我的记录"页面的"观看历史"标签页显示
- 支持点击跳转到对应的直播间
- 显示直播间封面、标题、主播名称、观看时间等信息
## 数据存储
观看历史数据保存在:`live-streaming/data/viewHistory.json`
数据格式:
```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
}
]
```
## 特性说明
1. **自动去重**:同一用户观看同一内容会更新记录而不是创建新记录
2. **观看次数统计**:记录用户观看同一内容的次数
3. **时间排序**:按最后观看时间倒序排列
4. **分页支持**:支持分页加载,避免一次加载过多数据
5. **类型过滤**:支持按类型(直播间/作品/用户主页)过滤
6. **实时状态**:直播间的在线状态会实时更新
## 使用方式
### 用户端操作
1. 登录应用
2. 进入任意直播间观看
3. 系统自动记录观看历史
4. 进入"我的" -> "我的记录"
5. 切换到"观看历史"标签页查看
### 开发者测试
参考 `live-streaming/test-view-history.md` 文件中的测试步骤
## 注意事项
1. 用户必须登录才能记录观看历史
2. 观看历史仅在用户端可见,不会公开
3. 数据持久化存储在本地JSON文件中
4. 生产环境建议使用数据库存储
## 后续优化建议
1. 添加观看时长的实时更新(目前仅记录初始值)
2. 支持用户手动删除单条观看历史
3. 添加观看历史的时间筛选功能
4. 支持导出观看历史数据
5. 添加隐私设置(是否记录观看历史)
6. 迁移到数据库存储MySQL/PostgreSQL