src/main/java/org/springblade/modules/simulateexam/controller/SimulateExamRecordController.java
@@ -9,9 +9,11 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.exam.vo.ExamPaperVO; import org.springblade.modules.exam.vo.ExamScoreVO; import org.springblade.modules.simulateexam.entity.SimulateExamRecord; import org.springblade.modules.simulateexam.service.SimulateExamRecordService; import org.springblade.modules.simulateexam.vo.SimulateExamRecordVO; import org.springblade.modules.simulateexam.vo.SimulateExamScoreVO; import org.springframework.web.bind.annotation.*; /** @@ -127,4 +129,14 @@ return R.data(simulateExamRecordService.getSimulateExamRecordInfo(simulateExamRecord)); } /** * 提交考试 * * @param simulateExamScore 模拟考试成绩信息对象 * @return */ @PostMapping("/saveSimulateExam") public R saveSimulateExam(@RequestBody SimulateExamScoreVO simulateExamScore) { return R.data(simulateExamRecordService.saveSimulateExam(simulateExamScore)); } } src/main/java/org/springblade/modules/simulateexam/service/SimulateExamRecordService.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.modules.simulateexam.entity.SimulateExamRecord; import org.springblade.modules.simulateexam.vo.SimulateExamRecordVO; import org.springblade.modules.simulateexam.vo.SimulateExamScoreVO; /** * 模拟考试记录服务类 @@ -50,4 +51,12 @@ * @return */ Object getSimulateExamRefreshInfo(SimulateExamRecordVO simulateExamRecord); /** * 提交考试 * * @param simulateExamScore 模拟考试成绩信息对象 * @return */ Object saveSimulateExam(SimulateExamScoreVO simulateExamScore); } src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java
@@ -6,11 +6,14 @@ import org.redisson.misc.Hash; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.modules.apply.entity.Apply; import org.springblade.modules.exam.entity.ExamAnswerRecord; import org.springblade.modules.exam.entity.ExamPaper; import org.springblade.modules.exam.entity.ExamScore; import org.springblade.modules.exam.entity.ExamSubjectChoices; import org.springblade.modules.exam.service.ExamPaperService; import org.springblade.modules.exam.service.ExamSubjectChoicesService; import org.springblade.modules.exam.vo.ExamResultVO; import org.springblade.modules.exam.vo.ExamSubjectChoicesVO; import org.springblade.modules.simulateexam.entity.SimulateExamAnswerRecord; import org.springblade.modules.simulateexam.entity.SimulateExamRecord; @@ -18,8 +21,10 @@ import org.springblade.modules.simulateexam.service.SimulateExamAnswerRecordService; import org.springblade.modules.simulateexam.service.SimulateExamRecordService; import org.springblade.modules.simulateexam.vo.SimulateExamRecordVO; import org.springblade.modules.simulateexam.vo.SimulateExamScoreVO; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IUserService; import org.springblade.modules.system.vo.UserVO; import org.springblade.modules.training.entity.TrainingRegistration; import org.springblade.modules.vip.entity.VipTopic; import org.springblade.modules.vip.service.VipTopicService; @@ -27,6 +32,7 @@ import org.springframework.stereotype.Service; import java.lang.reflect.Array; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -240,4 +246,44 @@ } return null; } /** * 提交考试 * @param simulateExamScore 模拟考试成绩信息对象 * @return */ @Override public Object saveSimulateExam(SimulateExamScoreVO simulateExamScore) { //取出考试结果 if (simulateExamScore.getExamResultVOS().size() > 0) { List<ExamResultVO> examResultVOS = simulateExamScore.getExamResultVOS(); //查询模拟考试信息 SimulateExamRecord simulateExamRecord = this.getById(simulateExamScore.getSimulateExamId()); int count = 0; //计算考试得分,并存入考试答题记录 for (ExamResultVO examResultVO : examResultVOS) { SimulateExamAnswerRecord answerRecord = new SimulateExamAnswerRecord(); answerRecord.setSimulateExamId(simulateExamScore.getSimulateExamId()); answerRecord.setAnswerOption(examResultVO.getValue()); answerRecord.setAnswerScore(examResultVO.getGrade()); if (examResultVO.getGrade() > 0) { answerRecord.setAnswerResult(1); } else { answerRecord.setAnswerResult(2); } count = count + examResultVO.getGrade(); answerRecord.setAnswerTime(new Date()); //新增 simulateExamAnswerRecordService.save(answerRecord); } //设置总分 simulateExamRecord.setScore(count); //更新模拟考试信息 this.updateById(simulateExamRecord); //返回 return true; } //返回结果 return false; } } src/main/java/org/springblade/modules/simulateexam/vo/SimulateExamScoreVO.java
New file @@ -0,0 +1,33 @@ package org.springblade.modules.simulateexam.vo; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springblade.modules.exam.entity.ExamScore; import org.springblade.modules.exam.vo.ExamResultVO; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; import java.util.List; /** * 模拟考试提交 vo * @author zhongrj * @time 2022-03-02 */ @Data public class SimulateExamScoreVO{ private static final long serialVersionUID = 1L; /** * 考试id,提交成绩时用 */ private Long simulateExamId; /** * 考勤提交的结果 */ private List<ExamResultVO> examResultVOS; } src/main/resources/application.yml
@@ -220,6 +220,7 @@ - /simulateExamRecord/pauseExam - /simulateExamRecord/getSimulateExamRefreshInfo - /simulateExamRecord/beginExam - /simulateExamRecord/saveSimulateExam - /examSubjectChoices/getSubjectResultInfoBySimulate - /blade-user/getNotUpdatePwdInfo - /attendance/AppSave