299 lines
7.0 KiB
Markdown
299 lines
7.0 KiB
Markdown
# 用户活动记录功能说明
|
||
|
||
## 功能概述
|
||
|
||
在管理后台的用户详情页面添加了三个新的标签页,用于查看用户的活动记录:
|
||
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`
|