feat: 支持主裁判多次修改分数并显示修改前后对比

- Flyway V8: 添加previous_score字段
- 修改前保存当前分数到previousScore
- 前端显示修改前和最终得分

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
2026-01-24 12:20:15 +08:00
co-authored by factory-droid[bot]
parent 261f06168e
commit dc7a8e66ac
5 changed files with 24 additions and 1 deletions
@@ -521,6 +521,12 @@ public class MartialMiniController extends BladeController {
// 只有评分完成时才显示总分
if (scoringComplete) {
vo.setTotalScore(athlete.getTotalScore());
// 使用数据库中保存的修改前分数
if (athlete.getPreviousScore() != null) {
vo.setOriginalScore(athlete.getPreviousScore());
vo.setIsModified(true);
}
} else {
vo.setTotalScore(null);
}
@@ -176,6 +176,12 @@ public class MartialAthlete extends TenantEntity {
@Schema(description = "总分")
private BigDecimal totalScore;
/**
* 修改前分数
*/
@Schema(description = "修改前分数")
private BigDecimal previousScore;
/**
* 排名
*/
@@ -78,6 +78,14 @@ public class MiniAthleteListVO implements Serializable {
@JsonProperty("scoringComplete")
private Boolean scoringComplete = false;
@Schema(description = "修改前分数(普通裁判评分的平均分)")
@JsonProperty("originalScore")
private BigDecimal originalScore;
@Schema(description = "是否被主裁判修改过")
@JsonProperty("isModified")
private Boolean isModified = false;
@Schema(description = "比赛状态(0-待出场,1-进行中,2-已完成)")
@JsonProperty("competitionStatus")
private Integer competitionStatus;
@@ -370,7 +370,8 @@ public class MartialScoreServiceImpl extends ServiceImpl<MartialScoreMapper, Mar
}
}
// 6. 更新选手总分
// 6. 保存修改前分数,然后更新选手总分
athlete.setPreviousScore(athlete.getTotalScore());
athlete.setTotalScore(dto.getModifiedScore());
boolean athleteUpdated = athleteService.updateById(athlete);
@@ -0,0 +1,2 @@
-- 添加选手修改前分数字段,用于记录主裁判修改前的分数
ALTER TABLE martial_athlete ADD COLUMN previous_score DECIMAL(10,3) DEFAULT NULL COMMENT '修改前分数' AFTER total_score;