zhibo/用户活动记录功能说明.md
2026-01-03 15:32:31 +08:00

7.0 KiB
Raw Blame History

用户活动记录功能说明

功能概述

在管理后台的用户详情页面添加了三个新的标签页,用于查看用户的活动记录:

  1. 关注记录 - 查看用户关注了哪些人
  2. 点赞记录 - 查看用户点赞了哪些内容(直播间、作品、心愿等)
  3. 查看历史 - 查看用户的浏览历史记录

实现内容

1. 前端修改

文件: Zhibo/admin/src/views/user/list/userDetails.vue

新增标签页:

  • 标签页 7关注记录
  • 标签页 8点赞记录
  • 标签页 9查看历史

功能特性:

  • 支持分页显示
  • 数据实时加载
  • 状态标签显示(关注状态、内容类型等)
  • 时间排序(最新的在前)

2. 后端接口

文件: Zhibo/zhibo-h/crmeb-admin/src/main/java/com/zbkj/admin/controller/UserActivityController.java

新增接口:

2.1 获取关注记录

GET /api/admin/user/follow/records
参数:
  - userId: 用户ID
  - page: 页码默认1
  - limit: 每页数量默认10

返回数据:

{
  "code": 200,
  "data": {
    "list": [
      {
        "followedId": 41,
        "followedNickname": "夏至已至",
        "followStatus": "1",
        "createTime": "2026-01-03 14:19:16"
      }
    ],
    "total": 1,
    "page": 1,
    "limit": 10
  }
}

2.2 获取点赞记录

GET /api/admin/user/like/records
参数:
  - userId: 用户ID
  - page: 页码默认1
  - limit: 每页数量默认10

返回数据:

{
  "code": 200,
  "data": {
    "list": [
      {
        "targetType": "room",
        "targetId": "8",
        "targetTitle": "火影忍者",
        "createTime": "2026-01-03 14:30:00"
      }
    ],
    "total": 1,
    "page": 1,
    "limit": 10
  }
}

2.3 获取查看历史

GET /api/admin/user/view/history
参数:
  - userId: 用户ID
  - page: 页码默认1
  - limit: 每页数量默认10

返回数据:

{
  "code": 200,
  "data": {
    "list": [
      {
        "targetType": "room",
        "targetId": "8",
        "targetTitle": "火影忍者",
        "viewDuration": 1200,
        "createTime": "2026-01-03 14:25:00"
      }
    ],
    "total": 1,
    "page": 1,
    "limit": 10
  }
}

3. 数据库表

文件: user_activity_tables.sql

新增表:

3.1 直播间点赞记录表 (eb_live_room_like)

CREATE TABLE `eb_live_room_like` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `room_id` varchar(50) NOT NULL COMMENT '直播间ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_room` (`user_id`, `room_id`)
);

3.2 作品点赞记录表 (eb_work_like)

CREATE TABLE `eb_work_like` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `work_id` bigint(20) NOT NULL COMMENT '作品ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_work` (`user_id`, `work_id`)
);

3.3 心愿点赞记录表 (eb_wish_like)

CREATE TABLE `eb_wish_like` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `wish_id` bigint(20) NOT NULL COMMENT '心愿ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_wish` (`user_id`, `wish_id`)
);

3.4 查看历史记录表 (eb_view_history)

CREATE TABLE `eb_view_history` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `target_type` varchar(20) NOT NULL COMMENT '目标类型',
  `target_id` varchar(50) NOT NULL COMMENT '目标ID',
  `target_title` varchar(255) DEFAULT NULL COMMENT '目标标题',
  `view_duration` int(11) DEFAULT 0 COMMENT '观看时长(秒)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`)
);

部署步骤

1. 创建数据库表

mysql -u root -p zhibo < user_activity_tables.sql

2. 编译后端代码

cd Zhibo/zhibo-h
mvn clean package -DskipTests -pl crmeb-admin -am

3. 重启后端服务

cd /root/zhibo/Zhibo/zhibo-h/crmeb-admin
./restart.sh

4. 前端无需重新编译

前端代码修改后,刷新浏览器即可看到新功能。

使用说明

1. 查看用户活动记录

  1. 登录管理后台
  2. 进入"用户管理" -> "用户列表"
  3. 点击某个用户的"详情"按钮
  4. 在弹出的抽屉中,可以看到新增的三个标签页:
    • 关注记录
    • 点赞记录
    • 查看历史

2. 数据说明

关注记录:

  • 显示用户关注了哪些人
  • 包含关注状态(已关注/已取消)
  • 按关注时间倒序排列

点赞记录:

  • 显示用户点赞的所有内容
  • 包含类型标签(直播间/作品/心愿)
  • 按点赞时间倒序排列

查看历史:

  • 显示用户的浏览记录
  • 包含观看时长
  • 按查看时间倒序排列

3. 数据收集

这些数据需要在应用中主动记录:

点赞记录:

  • 用户点赞直播间时,插入 eb_live_room_like
  • 用户点赞作品时,插入 eb_work_like
  • 用户点赞心愿时,插入 eb_wish_like

查看历史:

  • 用户进入直播间时,记录到 eb_view_history
  • 用户查看作品时,记录到 eb_view_history
  • 用户访问他人主页时,记录到 eb_view_history

测试数据

可以使用以下 SQL 插入测试数据:

-- 插入点赞记录
INSERT INTO eb_live_room_like (user_id, room_id, create_time)
VALUES (43, '8', '2026-01-03 14:30:00');

-- 插入查看历史
INSERT INTO eb_view_history (user_id, target_type, target_id, target_title, view_duration, create_time)
VALUES (43, 'room', '8', '火影忍者', 1200, '2026-01-03 14:25:00');

注意事项

  1. 性能优化:

    • 所有表都添加了索引,确保查询性能
    • 使用分页查询,避免一次加载过多数据
  2. 数据一致性:

    • 点赞表使用唯一索引,防止重复点赞
    • 查看历史可以重复记录,用于统计观看次数
  3. 扩展性:

    • 可以轻松添加更多类型的点赞记录
    • 查看历史支持多种目标类型
  4. 隐私保护:

    • 只有管理员可以查看用户的活动记录
    • 前端用户无法查看其他用户的私密数据

后续优化建议

  1. 数据统计:

    • 添加用户活跃度统计
    • 生成用户行为分析报告
  2. 数据导出:

    • 支持导出用户活动记录为 Excel
    • 用于数据分析和备份
  3. 实时更新:

    • 使用 WebSocket 实时推送新的活动记录
    • 提升管理员的监控体验
  4. 数据清理:

    • 定期清理过期的查看历史记录
    • 避免数据库膨胀

相关文件

  • 前端页面: Zhibo/admin/src/views/user/list/userDetails.vue
  • 后端控制器: Zhibo/zhibo-h/crmeb-admin/src/main/java/com/zbkj/admin/controller/UserActivityController.java
  • 数据库脚本: user_activity_tables.sql
  • 说明文档: 用户活动记录功能说明.md