diff --git a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java index f6e69a2..a5639d8 100644 --- a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java +++ b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java @@ -1,5 +1,7 @@ package com.project.appeal.domain.service.Impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.github.tingyugetc520.ali.dingtalk.error.DtErrorException; import com.project.appeal.domain.dto.AppealDTO; import com.project.appeal.domain.entity.AppealEntity; @@ -15,8 +17,10 @@ import com.project.exam.domain.dto.ExamRecordDTO; import com.project.exam.domain.entity.ExamRecordEntity; import com.project.exam.mapper.ExamRecordMapper; import com.project.task.domain.entity.TaskEntity; +import com.project.task.domain.entity.TaskUserEntity; import com.project.task.domain.enums.QuestionTypeEnum; import com.project.task.mapper.TaskMapper; +import com.project.task.mapper.TaskUserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,6 +36,8 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService { @Autowired private ExamRecordMapper examRecordMapper; @Autowired + private TaskUserMapper taskUserMapper; + @Autowired private TaskMapper taskMapper; @Autowired private DingUtil dingUtil; @@ -108,6 +114,19 @@ 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){ + //更新考试结果 + taskUserMapper.update( + null, + new LambdaUpdateWrapper() + .eq(TaskUserEntity::getUserId, appealDTO.getUserId()) + .eq(TaskUserEntity::getTaskId, taskEntity.getId()) + .set(TaskUserEntity::getStatus, 2) + ); + } + //保存 examRecordMapper.updateScore(index,score.doubleValue(),examRecord.getId()); //通知用户