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

3.6 KiB
Raw Blame History

观看历史功能实现说明

功能概述

已成功实现观看历史记录功能,用户在观看直播时会自动记录观看历史,并可以在"我的记录"页面查看。

实现的功能

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
    • 功能:记录用户观看直播间、作品等内容
    • 参数:
      {
        "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

数据格式:

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