173 lines
5.3 KiB
Markdown
173 lines
5.3 KiB
Markdown
|
|
# 后台主播统计数据修复指南
|
|||
|
|
|
|||
|
|
## 问题描述
|
|||
|
|
后台管理页面的主播列表中,粉丝数、直播间数、被点赞数等统计数据显示为0,但APP端能正确显示这些数据。
|
|||
|
|
|
|||
|
|
## 问题原因
|
|||
|
|
1. 后端代码已经修改,添加了获取统计数据的SQL查询
|
|||
|
|
2. 前端页面也已经修改,将"被关注数"改为"被点赞数"
|
|||
|
|
3. 但是后端服务可能没有重新编译部署,导致修改没有生效
|
|||
|
|
|
|||
|
|
## 修复步骤
|
|||
|
|
|
|||
|
|
### 步骤1:验证数据库中的数据
|
|||
|
|
运行诊断SQL脚本,确认数据库中确实有数据:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mysql -h 1.15.149.240 -u root -p zhibo < diagnose_streamer_stats_detail.sql
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这个脚本会显示:
|
|||
|
|
- 所有主播的基本信息
|
|||
|
|
- 每个主播的粉丝数详情
|
|||
|
|
- 每个主播的直播间数量
|
|||
|
|
- 每个主播的总点赞数
|
|||
|
|
- 完整的统计汇总
|
|||
|
|
|
|||
|
|
### 步骤2:重新编译和部署后端服务
|
|||
|
|
|
|||
|
|
#### 方法1:使用自动部署脚本(推荐)
|
|||
|
|
```bash
|
|||
|
|
deploy-backend-streamer-fix.bat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这个脚本会自动:
|
|||
|
|
1. 编译后端项目
|
|||
|
|
2. 停止后端服务
|
|||
|
|
3. 上传新的jar包
|
|||
|
|
4. 启动后端服务
|
|||
|
|
|
|||
|
|
#### 方法2:手动部署
|
|||
|
|
```bash
|
|||
|
|
# 1. 编译后端
|
|||
|
|
cd Zhibo/zhibo-h
|
|||
|
|
mvn clean package -DskipTests
|
|||
|
|
|
|||
|
|
# 2. 停止服务
|
|||
|
|
ssh root@1.15.149.240 "cd /root/zhibo && docker-compose stop crmeb-admin"
|
|||
|
|
|
|||
|
|
# 3. 上传jar包
|
|||
|
|
scp crmeb-admin/target/crmeb-admin.jar root@1.15.149.240:/root/zhibo/
|
|||
|
|
|
|||
|
|
# 4. 启动服务
|
|||
|
|
ssh root@1.15.149.240 "cd /root/zhibo && docker-compose up -d crmeb-admin"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤3:验证修复结果
|
|||
|
|
1. 等待30秒让服务完全启动
|
|||
|
|
2. 刷新后台管理页面(Ctrl+F5 强制刷新)
|
|||
|
|
3. 查看主播列表,确认统计数据正确显示
|
|||
|
|
|
|||
|
|
## 代码修改说明
|
|||
|
|
|
|||
|
|
### 后端修改(StreamerAdminController.java)
|
|||
|
|
在主播列表查询的SQL中添加了总点赞数的统计:
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
sql.append("(SELECT COALESCE(SUM(r.like_count), 0) FROM eb_live_room r WHERE r.uid = u.uid) as totalLikeCount, ");
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这个查询会:
|
|||
|
|
1. 查找主播的所有直播间
|
|||
|
|
2. 对所有直播间的like_count字段求和
|
|||
|
|
3. 如果没有直播间或like_count为NULL,返回0
|
|||
|
|
|
|||
|
|
### 前端修改(streamer/list/index.vue)
|
|||
|
|
将"被关注数"列改为"被点赞数"列:
|
|||
|
|
|
|||
|
|
```vue
|
|||
|
|
<el-table-column label="被点赞数" width="100" align="center">
|
|||
|
|
<template slot-scope="{row}"><span class="like-count">{{ row.totalLikeCount || 0 }}</span></template>
|
|||
|
|
</el-table-column>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 数据对齐说明
|
|||
|
|
|
|||
|
|
### APP端数据来源
|
|||
|
|
APP端调用的是 `/api/front/streamer/stats` 接口,使用以下SQL:
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- 粉丝数
|
|||
|
|
SELECT COUNT(*) FROM eb_follow_record
|
|||
|
|
WHERE followed_id = ?
|
|||
|
|
AND follow_status IN ('1', '关注')
|
|||
|
|
AND is_deleted = 0
|
|||
|
|
|
|||
|
|
-- 点赞数
|
|||
|
|
SELECT COALESCE(SUM(like_count), 0) FROM eb_live_room
|
|||
|
|
WHERE uid = ?
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 后台管理端数据来源
|
|||
|
|
后台管理端调用的是 `/api/admin/streamer/list` 接口,使用相同的SQL逻辑:
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- 粉丝数
|
|||
|
|
(SELECT COUNT(*) FROM eb_follow_record f
|
|||
|
|
WHERE f.followed_id = u.uid
|
|||
|
|
AND f.follow_status IN ('1', '关注')
|
|||
|
|
AND f.is_deleted = 0) as fansCount
|
|||
|
|
|
|||
|
|
-- 点赞数
|
|||
|
|
(SELECT COALESCE(SUM(r.like_count), 0) FROM eb_live_room r
|
|||
|
|
WHERE r.uid = u.uid) as totalLikeCount
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
两端使用完全相同的SQL逻辑,确保数据一致性。
|
|||
|
|
|
|||
|
|
## 显示字段说明
|
|||
|
|
|
|||
|
|
后台管理页面显示的字段:
|
|||
|
|
|
|||
|
|
| 字段名 | 说明 | 数据来源 |
|
|||
|
|
|--------|------|----------|
|
|||
|
|
| 主播信息 | 头像、昵称、ID | eb_user表 |
|
|||
|
|
| 主播等级 | 1-初级, 2-中级, 3-高级, 4-金牌 | eb_user.streamer_level |
|
|||
|
|
| 粉丝数 | 有多少人关注了这个主播 | eb_follow_record表统计 |
|
|||
|
|
| 直播间数 | 主播创建的直播间总数 | eb_live_room表统计 |
|
|||
|
|
| 被点赞数 | 主播所有直播间的点赞数总和 | eb_live_room.like_count求和 |
|
|||
|
|
| 本月直播 | 本月创建的直播间数量 | eb_live_room表按月统计 |
|
|||
|
|
| 认证时间 | 成为主播的时间 | eb_user.streamer_certified_time |
|
|||
|
|
| 状态 | 正常/封禁 | eb_streamer_ban表判断 |
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### Q1: 部署后数据还是显示0
|
|||
|
|
**A:** 检查以下几点:
|
|||
|
|
1. 确认后端服务已经重启:`ssh root@1.15.149.240 "docker ps | grep crmeb-admin"`
|
|||
|
|
2. 查看后端日志:`ssh root@1.15.149.240 "docker logs crmeb-admin"`
|
|||
|
|
3. 清除浏览器缓存,强制刷新页面(Ctrl+Shift+Delete)
|
|||
|
|
4. 运行诊断SQL确认数据库中有数据
|
|||
|
|
|
|||
|
|
### Q2: 编译失败
|
|||
|
|
**A:** 检查以下几点:
|
|||
|
|
1. 确认Maven已安装:`mvn -version`
|
|||
|
|
2. 确认Java版本正确:`java -version`(需要Java 8或以上)
|
|||
|
|
3. 清理Maven缓存:`mvn clean`
|
|||
|
|
|
|||
|
|
### Q3: 上传jar包失败
|
|||
|
|
**A:** 检查以下几点:
|
|||
|
|
1. 确认SSH连接正常:`ssh root@1.15.149.240`
|
|||
|
|
2. 确认jar包已生成:检查 `Zhibo/zhibo-h/crmeb-admin/target/crmeb-admin.jar` 是否存在
|
|||
|
|
3. 手动上传:使用FTP工具上传jar包到服务器
|
|||
|
|
|
|||
|
|
## 验证清单
|
|||
|
|
|
|||
|
|
部署完成后,请验证以下内容:
|
|||
|
|
|
|||
|
|
- [ ] 后台管理页面能正常访问
|
|||
|
|
- [ ] 主播列表能正常加载
|
|||
|
|
- [ ] 粉丝数显示正确(与APP端一致)
|
|||
|
|
- [ ] 直播间数显示正确
|
|||
|
|
- [ ] 被点赞数显示正确(与APP端一致)
|
|||
|
|
- [ ] 本月直播次数显示正确
|
|||
|
|
- [ ] 其他功能正常(搜索、分页、封禁等)
|
|||
|
|
|
|||
|
|
## 相关文件
|
|||
|
|
|
|||
|
|
- 后端控制器:`Zhibo/zhibo-h/crmeb-admin/src/main/java/com/zbkj/admin/controller/StreamerAdminController.java`
|
|||
|
|
- 前端页面:`Zhibo/admin/src/views/streamer/list/index.vue`
|
|||
|
|
- 前端API:`Zhibo/admin/src/api/streamer.js`
|
|||
|
|
- 诊断SQL:`diagnose_streamer_stats_detail.sql`
|
|||
|
|
- 部署脚本:`deploy-backend-streamer-fix.bat`
|