cs120_8 - 评价后分数显示错误

This commit is contained in:
zpc 2026-01-01 17:46:34 +08:00
parent 2183b89b47
commit e5753c6a2d
2 changed files with 31 additions and 10 deletions

View File

@ -2,8 +2,8 @@
## Bug统计
- **总数量**: 9个
- **已修复**: 5个 ✅
- **未修改**: 4
- **已修复**: 6个 ✅
- **未修改**: 3
- **分类**: 后端问题 6个前端问题 2个前后端问题 3个
---
@ -273,7 +273,7 @@
---
### cs120_8 - 评价后分数显示错误
**状态**: 未修改
**状态**: ✅ 已修复
**类型**: 后端
**优先级**: 中
@ -285,9 +285,29 @@
**解决方案**:
评分后再次点开,应显示修正后的分值(重新计算的平均分)。
**问题根本原因**:
在`GetEvaluateServices`接口中,当用户已经评价过某人时,返回的`user_play_level`和`user_skills_level`使用的是评价记录表(`SQReservationEvaluate`)中的分数,而不是被评价用户在用户表(`CoreCmsUser`)中更新后的平均分。
**修复内容**:
1. **GetEvaluateServices接口修复** (`server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs`)
- 修改第303-304行的逻辑
- 当用户已评价时,`user_play_level`和`user_skills_level`改为使用`item.play_level`和`item.skills_level`
- 这样显示的是被评价用户的当前平均分,而不是评价记录中的分数
**修复逻辑**:
- `play_level`和`skills_level`: 保持显示用户给出的评分(用于回显)
- `user_play_level`和`user_skills_level`: 显示被评价用户的当前平均分(修正后的分值)
**修复前后对比**:
- **修复前**: 评价后显示"我给他4分他当前4分"(错误)
- **修复后**: 评价后显示"我给他4分他当前4.2分"(正确的平均分)
**修复时间**: 2025-01-01
**测试状态**: 待测试
**涉及接口**:
- `AddEvaluateServices` - 添加评价
- 评价后需要重新计算用户的平均分
- `GetEvaluateServices` - 获取预约评价信息
- `AddEvaluateServices` - 添加评价(计算逻辑正确,无需修改)
---
@ -328,7 +348,7 @@
- ✅ cs120_5 - 签到后页面状态未刷新(已修复)
- cs120_6 - 首页Banner未显示
- ✅ cs120_7 - 个人信息数值显示异常(已修复)
- cs120_8 - 评价后分数显示错误
- cs120_8 - 评价后分数显示错误(已修复)
### 🟢 低优先级(优化项)
- ✅ cs110_23 - 后台房间管理图标说明缺失(已修复)

View File

@ -297,11 +297,12 @@ public class SQController : ControllerBase
if (e != null)
{
is_evaluate = true;
play_level = e.play_level;
skills_level = e.skills_level;
play_level = e.play_level; // 这是用户给出的评分
skills_level = e.skills_level; // 这是用户给出的评分
now = e.created_at;
user_play_level = e.play_level;
user_skills_level = e.skills_level;
// 修复:显示被评价用户的当前平均分,而不是评价记录中的分数
user_play_level = item.play_level; // 使用用户表中的当前平均分
user_skills_level = item.skills_level; // 使用用户表中的当前平均分
}
}
if (userBlack.Count > 0)