7.0 KiB
7.0 KiB
用户活动记录功能说明
功能概述
在管理后台的用户详情页面添加了三个新的标签页,用于查看用户的活动记录:
- 关注记录 - 查看用户关注了哪些人
- 点赞记录 - 查看用户点赞了哪些内容(直播间、作品、心愿等)
- 查看历史 - 查看用户的浏览历史记录
实现内容
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. 查看用户活动记录
- 登录管理后台
- 进入"用户管理" -> "用户列表"
- 点击某个用户的"详情"按钮
- 在弹出的抽屉中,可以看到新增的三个标签页:
- 关注记录
- 点赞记录
- 查看历史
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');
注意事项
-
性能优化:
- 所有表都添加了索引,确保查询性能
- 使用分页查询,避免一次加载过多数据
-
数据一致性:
- 点赞表使用唯一索引,防止重复点赞
- 查看历史可以重复记录,用于统计观看次数
-
扩展性:
- 可以轻松添加更多类型的点赞记录
- 查看历史支持多种目标类型
-
隐私保护:
- 只有管理员可以查看用户的活动记录
- 前端用户无法查看其他用户的私密数据
后续优化建议
-
数据统计:
- 添加用户活跃度统计
- 生成用户行为分析报告
-
数据导出:
- 支持导出用户活动记录为 Excel
- 用于数据分析和备份
-
实时更新:
- 使用 WebSocket 实时推送新的活动记录
- 提升管理员的监控体验
-
数据清理:
- 定期清理过期的查看历史记录
- 避免数据库膨胀
相关文件
- 前端页面:
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