zhibo/用户活动记录功能说明.md

299 lines
7.0 KiB
Markdown
Raw Normal View History

2026-01-03 15:32:31 +08:00
# 用户活动记录功能说明
## 功能概述
在管理后台的用户详情页面添加了三个新的标签页,用于查看用户的活动记录:
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`