src/main/java/com/mindskip/xzs/controller/admin/ExamMissController.java
File was deleted src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
@@ -87,10 +87,6 @@ ExamPaper examPaper = examPaperService.savePaperFromVM(model, getCurrentUser()); ExamPaperEditRequestVO newVM = examPaperService.examPaperToVM(examPaper.getId()); // 加入延时队列,定时试卷结束时记录缺考学生 if (examPaper.getPaperType() == 4) { examPaperService.addTimeTask(examPaper); } return RestResponse.ok(newVM); } src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java
@@ -34,17 +34,15 @@ private final ApplicationEventPublisher eventPublisher; private final ExamPaperSubjectService examPaperSubjectService; private final ExamTemplatesUserCountService examTemplatesUserCountService; private final ExamMissService examMissService; @Autowired public ExamPaperAnswerController(ExamPaperAnswerService examPaperAnswerService, ExamPaperService examPaperService, SubjectService subjectService, ApplicationEventPublisher eventPublisher, ExamPaperSubjectService examPaperSubjectService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamMissService examMissService) { public ExamPaperAnswerController(ExamPaperAnswerService examPaperAnswerService, ExamPaperService examPaperService, SubjectService subjectService, ApplicationEventPublisher eventPublisher, ExamPaperSubjectService examPaperSubjectService, ExamTemplatesUserCountService examTemplatesUserCountService) { this.examPaperAnswerService = examPaperAnswerService; this.examPaperService = examPaperService; this.subjectService = subjectService; this.eventPublisher = eventPublisher; this.examPaperSubjectService = examPaperSubjectService; this.examTemplatesUserCountService = examTemplatesUserCountService; this.examMissService = examMissService; } @@ -100,13 +98,6 @@ examTemplatesUserCountService.add(examTemplatesUserCount); } // 自动提交定义为缺考 if (examPaperSubmitVM.isAutoCommit()) { ExamMiss examMiss = new ExamMiss(); examMiss.setExamId(examPaperSubmitVM.getId()); examMiss.setUserId(user.getId()); examMissService.save(examMiss); } return RestResponse.ok(scoreVm); } src/main/java/com/mindskip/xzs/domain/ExamMiss.java
File was deleted src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java
@@ -1,5 +1,7 @@ package com.mindskip.xzs.domain; import com.mindskip.xzs.domain.enums.AnswerInvalidEnum; import java.io.Serializable; import java.util.Date; @@ -83,8 +85,19 @@ private String userName; /** * 是否作废:1/0 是/否(作废代表需要补考) */ private AnswerInvalidEnum invalid; public AnswerInvalidEnum getInvalid() { return invalid; } public void setInvalid(AnswerInvalidEnum invalid) { this.invalid = invalid; } public Integer getId() { return id; src/main/java/com/mindskip/xzs/domain/enums/AnswerInvalidEnum.java
New file @@ -0,0 +1,31 @@ package com.mindskip.xzs.domain.enums; import com.baomidou.mybatisplus.annotation.EnumValue; import com.fasterxml.jackson.annotation.JsonValue; import lombok.Getter; /** * 考试作废 * * @author gonghl */ @Getter public enum AnswerInvalidEnum { VALID("0", "有效"), INVALID("1", "无效"), ; @EnumValue // 标明该字段存入数据库 private final String code; @JsonValue // 标明在转JSON时使用该字段,即响应时 private final String desc; AnswerInvalidEnum(String code, String desc) { this.code = code; this.desc = desc; } } src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java
File was deleted src/main/java/com/mindskip/xzs/queue/ExamPaperTimeTask.java
File was deleted src/main/java/com/mindskip/xzs/repository/ExamMissMapper.java
File was deleted src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
@@ -1,6 +1,5 @@ package com.mindskip.xzs.repository; import com.mindskip.xzs.domain.ExamMiss; import com.mindskip.xzs.domain.ExamPaper; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.vo.PaperExcelVO; @@ -39,7 +38,4 @@ List<PaperExcelVO> getPaperExcelById(@Param("id") Integer id); void saveMissExamUser(long examPaperId); List<ExamPaper> selectTimeTaskPaper(Date time); } src/main/java/com/mindskip/xzs/service/ExamMissService.java
File was deleted src/main/java/com/mindskip/xzs/service/ExamPaperService.java
@@ -38,7 +38,4 @@ List<PaperExcelVO> getPaperExcelById(Integer id); void addTimeTask(ExamPaper examPaper); void saveMissExamUser(long examPaperId); } src/main/java/com/mindskip/xzs/service/impl/ExamMissServiceImpl.java
File was deleted src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -10,7 +10,6 @@ import com.mindskip.xzs.domain.exam.ExamPaperTitleItemObject; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.vo.PaperExcelVO; import com.mindskip.xzs.queue.ExamPaperTimeTask; import com.mindskip.xzs.repository.ExamPaperMapper; import com.mindskip.xzs.repository.QuestionMapper; import com.mindskip.xzs.repository.UserDepartmentMapper; @@ -20,7 +19,6 @@ import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.utility.JsonUtil; import com.mindskip.xzs.utility.ModelMapperSingle; import com.mindskip.xzs.utility.minio.DateUtils; import com.mindskip.xzs.viewmodel.admin.exam.*; import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO; import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM; @@ -33,9 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.util.*; import java.util.concurrent.DelayQueue; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -55,24 +51,8 @@ private final UserService userService; private final UserDepartmentMapper userDepartmentMapper; private final DepartmentService departmentService; private final DelayQueue<ExamPaperTimeTask> QUEUE = new DelayQueue<>(); /** * 将进行中的定时试卷加入到队列中,并启动一个线程来轮询队列 */ @PostConstruct public void pollQueue() { examPaperMapper.selectTimeTaskPaper(DateUtils.getNowDate()).forEach(this::addTimeTask); new Thread(() -> { try { ExamPaperTimeTask task = QUEUE.take(); saveMissExamUser(task.getExamPaperId()); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } }).start(); } @Autowired public ExamPaperServiceImpl(ExamPaperMapper examPaperMapper, QuestionMapper questionMapper, TextContentService textContentService, QuestionService questionService, SubjectService subjectService, ExamPaperDepartmentService examPaperDepartmentService, ExamPaperSubjectService examPaperSubjectService, QuestionSubjectService questionSubjectService, ExamPaperUserService examPaperUserService, UserService userService, UserDepartmentMapper userDepartmentMapper, DepartmentService departmentService) { @@ -616,16 +596,4 @@ return randomNumber; } @Override public void addTimeTask(ExamPaper examPaper) { ExamPaperTimeTask examPaperTimeTask = new ExamPaperTimeTask(); examPaperTimeTask.setExamPaperId(examPaper.getId()); examPaperTimeTask.setExpiry(examPaper.getLimitEndTime().getTime()); QUEUE.add(examPaperTimeTask); } @Override public void saveMissExamUser(long examPaperId) { examPaperMapper.saveMissExamUser(examPaperId); } } src/main/resources/mapper/ExamMissMapper.xml
File was deleted src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -321,6 +321,7 @@ (#{item.examPaperId},#{item.userId}) </foreach> </if> and (invalid = 0 or invalid is null) </select> <select id="adminPageByGrade" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM"> select src/main/resources/mapper/ExamPaperMapper.xml
@@ -423,19 +423,4 @@ where a.exam_paper_id = #{id} </select> <select id="saveMissExamUser" resultType="com.mindskip.xzs.domain.ExamMiss"> INSERT INTO t_exam_miss(exam_id, user_id) SELECT a.id, b.user_id FROM t_exam_paper a left join t_exam_paper_user b on a.id = b.exam_paper_id left join t_exam_paper_answer c on a.id = c.exam_paper_id and c.create_user = b.user_id WHERE a.id = #{examPaperId} and c.id is null </select> <select id="selectTimeTaskPaper" resultType="com.mindskip.xzs.domain.ExamPaper"> select id, limit_end_time from t_exam_paper where paper_type = 4 and limit_end_time >= #{time} and deleted = 0 </select> </mapper>