# 用户活动记录功能说明 ## 功能概述 在管理后台的用户详情页面添加了三个新的标签页,用于查看用户的活动记录: 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) ``` 返回数据: ```json { "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) ``` 返回数据: ```json { "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) ``` 返回数据: ```json { "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) ```sql 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) ```sql 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) ```sql 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) ```sql 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. 创建数据库表 ```bash mysql -u root -p zhibo < user_activity_tables.sql ``` ### 2. 编译后端代码 ```bash cd Zhibo/zhibo-h mvn clean package -DskipTests -pl crmeb-admin -am ``` ### 3. 重启后端服务 ```bash 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 插入测试数据: ```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`