# 立即修复后台统计数据显示问题 ## 当前状态 - ✅ 后端代码已修改(添加totalLikeCount统计) - ✅ 前端代码已修改(显示被点赞数) - ❌ 后端服务未重新部署(导致修改未生效) ## 快速修复步骤 ### 第1步:验证数据库有数据(可选) ```bash # 连接到数据库 mysql -h 1.15.149.240 -u root -p zhibo # 运行以下查询 SELECT u.uid, u.nickname, (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 COUNT(*) FROM eb_live_room r WHERE r.uid = u.uid) as roomCount, (SELECT COALESCE(SUM(r.like_count), 0) FROM eb_live_room r WHERE r.uid = u.uid) as totalLikeCount FROM eb_user u WHERE u.is_streamer = 1; ``` 如果看到数据不是0,说明数据库中有数据,只是后端服务没有更新。 ### 第2步:重新编译后端(在本地执行) ```bash cd Zhibo\zhibo-h mvn clean package -DskipTests ``` 等待编译完成,确认生成了新的jar包: - 文件位置:`Zhibo\zhibo-h\crmeb-admin\target\crmeb-admin.jar` ### 第3步:部署到服务器 #### 方法A:使用自动脚本(推荐) 直接运行: ```bash deploy-backend-streamer-fix.bat ``` #### 方法B:手动部署 ```bash # 1. 停止服务 ssh root@1.15.149.240 "cd /root/zhibo && docker-compose stop crmeb-admin" # 2. 备份旧jar包(可选) ssh root@1.15.149.240 "cp /root/zhibo/crmeb-admin.jar /root/zhibo/crmeb-admin.jar.backup" # 3. 上传新jar包 scp Zhibo\zhibo-h\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" # 5. 查看日志确认启动成功 ssh root@1.15.149.240 "docker logs -f crmeb-admin" ``` 看到类似 "Started CrmebAdminApplication" 的日志说明启动成功,按Ctrl+C退出日志查看。 ### 第4步:验证修复 1. 等待30秒让服务完全启动 2. 打开浏览器,访问后台管理页面 3. 按 `Ctrl+Shift+Delete` 清除缓存 4. 按 `Ctrl+F5` 强制刷新页面 5. 进入"主播管理"页面 6. 查看主播列表,确认以下数据正确显示: - 粉丝数(应该与APP端一致) - 直播间数 - 被点赞数(应该与APP端一致) - 本月直播次数 ## 预期结果 修复后,后台管理页面应该显示: | 主播信息 | 主播等级 | 粉丝数 | 直播间数 | 被点赞数 | 本月直播 | 认证时间 | 状态 | |---------|---------|--------|---------|---------|---------|---------|------| | 主播A | 初级 | 5 | 2 | 150 | 1次 | 2025-01-01 | 正常 | | 主播B | 中级 | 10 | 3 | 300 | 2次 | 2025-01-02 | 正常 | **注意:** - "被点赞数"列显示的是主播所有直播间的点赞数总和 - 数据应该与APP端的"主播中心"页面显示的数据一致 ## 如果还是显示0 ### 检查1:确认服务已重启 ```bash ssh root@1.15.149.240 "docker ps | grep crmeb-admin" ``` 应该看到容器正在运行,且启动时间是最近的。 ### 检查2:查看服务日志 ```bash ssh root@1.15.149.240 "docker logs crmeb-admin | tail -100" ``` 查看是否有错误信息。 ### 检查3:测试API直接返回 ```bash # 需要先登录获取token,然后: curl -X GET "http://1.15.149.240:8080/api/admin/streamer/list?page=1&limit=10" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" ``` 查看返回的JSON中是否包含 `totalLikeCount` 字段。 ### 检查4:确认前端已更新 打开浏览器开发者工具(F12),查看Network标签: 1. 刷新页面 2. 找到 `/api/admin/streamer/list` 请求 3. 查看Response,确认返回的数据中包含 `totalLikeCount` 字段 如果Response中有数据但页面不显示,说明是前端缓存问题,需要: 1. 清除浏览器缓存 2. 重新构建前端(如果前端也有修改) ## 前端重新构建(如果需要) 如果前端代码也有修改,需要重新构建前端: ```bash cd Zhibo\admin npm run build:prod # 上传到服务器 scp -r dist/* root@1.15.149.240:/root/zhibo/admin/ ``` ## 联系支持 如果按照以上步骤操作后问题仍未解决,请提供以下信息: 1. 数据库查询结果(第1步) 2. 后端服务日志 3. 浏览器Network标签中的API响应 4. 浏览器Console中的错误信息 ## 相关文件 - 详细修复指南:`后台主播统计数据修复指南.md` - 诊断SQL脚本:`diagnose_streamer_stats_detail.sql` - 部署脚本:`deploy-backend-streamer-fix.bat` - API测试脚本:`test_streamer_api.bat`