diff --git a/src/main/java/com/project/exam/domain/service/impl/SubmitPaperDomainServiceImpl.java b/src/main/java/com/project/exam/domain/service/impl/SubmitPaperDomainServiceImpl.java index 94587c1..cd678a4 100644 --- a/src/main/java/com/project/exam/domain/service/impl/SubmitPaperDomainServiceImpl.java +++ b/src/main/java/com/project/exam/domain/service/impl/SubmitPaperDomainServiceImpl.java @@ -109,10 +109,15 @@ public class SubmitPaperDomainServiceImpl implements SubmitPaperDomainService { } } - // 汇总总分:客观题 + 简答题 - finalScore = scoringContext.getTotalScore(); - // 四舍五入处理(不能超过100分) - finalScore = new BigDecimal(finalScore).setScale(2, RoundingMode.HALF_UP).min(new BigDecimal("100")).doubleValue(); + // 全部答对直接给100分(无简答题且客观题全对) + if (!hasShortAnswer && scoringContext.getRightCount() == scoringContext.getObjectiveTotal()) { + finalScore = 100.0; + } else { + // 汇总总分:客观题 + 简答题 + finalScore = scoringContext.getTotalScore(); + // 四舍五入处理(不能超过100分) + finalScore = new BigDecimal(finalScore).setScale(2, RoundingMode.HALF_UP).min(new BigDecimal("100")).doubleValue(); + } boolean isPassed = (finalScore >= task.getPassScore()); record.setScore(finalScore); record.setPass(isPassed);