Browse Source

审批通过,同步修改考试状态

master
luogw 3 months ago
parent
commit
6370f0523e
  1. 7
      src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java
  2. 12
      src/main/java/com/project/exam/mapper/ExamRecordMapper.java
  3. 17
      src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java

7
src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java

@ -128,9 +128,10 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService {
//总分+单题分数
BigDecimal score = BigDecimal.valueOf(questionScore).add(BigDecimal.valueOf(examRecordDTO.getScore())).setScale(2, RoundingMode.HALF_UP);
//判断是否考试通过
//判断是否考试通过,且是否需要修改当前考试结果
BigDecimal passScoreBig = taskEntity.getPassScore() == null ? BigDecimal.ZERO : new BigDecimal(taskEntity.getPassScore());
if (score.compareTo(passScoreBig) >= 0){
boolean isNeedUpdate = score.compareTo(passScoreBig) >= 0 && !examRecordDTO.getPass();
if (isNeedUpdate){
//更新考试结果
taskUserMapper.update(
null,
@ -146,6 +147,6 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService {
};
//保存
examRecordMapper.updateScore(score.doubleValue(),examRecordDTO.getId());
examRecordMapper.updateScore(score.doubleValue(),examRecordDTO.getId(),isNeedUpdate);
}
}

12
src/main/java/com/project/exam/mapper/ExamRecordMapper.java

@ -20,12 +20,18 @@ public interface ExamRecordMapper extends BaseMapper<ExamRecordEntity> {
@Param("idx") int idx,
@Param("answer") String answer);
@Update("UPDATE evaluator_exam_record SET " +
@Update("<script>" +
"UPDATE evaluator_exam_record SET " +
"score = #{score}, " +
"update_time = NOW() " +
"WHERE id = #{id}")
"<if test=\"isNeedUpdate == true\">" +
", pass = true " +
"</if>" +
"WHERE id = #{id}" +
"</script>")
void updateScore(@Param("score") double score,
@Param("id") Long id);
@Param("id") Long id,
@Param("isNeedUpdate") boolean isNeedUpdate);
@Update("UPDATE evaluator_exam_record SET " +
"answer_snapshot = JSON_SET(answer_snapshot, '$[${index}].hasAppealed', true), " +

17
src/main/java/com/project/milvus/domain/service/impl/CheckMilvusDomainServiceImpl.java

@ -96,6 +96,23 @@ public class CheckMilvusDomainServiceImpl implements CheckMilvusDomainService {
if (StringUtils.isBlank(detailDTO.getAnalysis())) {
throw new MissingParameterException("题目解析不能为空");
}
//校验题目类型与答案数量是否正确
boolean isRight = switch (detailDTO.getType()) {
// 单选题:必须 1 位
case 1 -> detailDTO.getRightAnswer().length() == 1;
// 多选题:必须 ≥2 位
case 2 -> detailDTO.getRightAnswer().length() >= 2;
// 判断题:必须 1 位
case 3 -> detailDTO.getRightAnswer().length() == 1;
// 其他类型非法
default -> false;
};
if (!isRight) {
throw new MissingParameterException("正确答案数量与题目类型不匹配");
}
}
@Override

Loading…
Cancel
Save