From f2123ad78adc82f6a3e69a5603b6c0b110025236 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期五, 10 五月 2024 12:00:37 +0800 Subject: [PATCH] refactor:缺考新需求,移除延时保存补考用户功能 --- src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java | 13 ++++ /dev/null | 16 ----- src/main/java/com/mindskip/xzs/domain/enums/AnswerInvalidEnum.java | 31 ++++++++++ src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java | 4 - src/main/resources/mapper/ExamPaperMapper.xml | 15 ----- src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java | 11 --- src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java | 4 - src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 32 ---------- src/main/resources/mapper/ExamPaperAnswerMapper.xml | 1 src/main/java/com/mindskip/xzs/service/ExamPaperService.java | 3 - 10 files changed, 46 insertions(+), 84 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamMissController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamMissController.java deleted file mode 100644 index a2ed3a5..0000000 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamMissController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.mindskip.xzs.controller.admin; - -import com.mindskip.xzs.service.ExamMissService; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author gonghl - * @since 2024/5/9 涓嬪崍 5:58 - */ - -@RestController -@RequiredArgsConstructor -public class ExamMissController { - - private final ExamMissService examMissService; - - - -} diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java index 6881c2c..1eb4861 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java +++ b/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); } diff --git a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java index 155183d..d08fe72 100644 --- a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java +++ b/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); } diff --git a/src/main/java/com/mindskip/xzs/domain/ExamMiss.java b/src/main/java/com/mindskip/xzs/domain/ExamMiss.java deleted file mode 100644 index e972e42..0000000 --- a/src/main/java/com/mindskip/xzs/domain/ExamMiss.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.mindskip.xzs.domain; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; - -/** - * @author gonghl - */ -@TableName(value = "t_exam_miss") -@Data -public class ExamMiss implements Serializable { - - @TableId(type = IdType.AUTO) - private Integer id; - - private Integer examId; - - private Integer userId; - - private static final long serialVersionUID = 1L; -} \ No newline at end of file diff --git a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java b/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java index 0e8aa9d..d2c2eec 100644 --- a/src/main/java/com/mindskip/xzs/domain/ExamPaperAnswer.java +++ b/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 鏄�/鍚︼紙浣滃簾浠h〃闇�瑕佽ˉ鑰冿級 + */ + private AnswerInvalidEnum invalid; + public AnswerInvalidEnum getInvalid() { + return invalid; + } + + public void setInvalid(AnswerInvalidEnum invalid) { + this.invalid = invalid; + } public Integer getId() { return id; diff --git a/src/main/java/com/mindskip/xzs/domain/enums/AnswerInvalidEnum.java b/src/main/java/com/mindskip/xzs/domain/enums/AnswerInvalidEnum.java new file mode 100644 index 0000000..b60e0e4 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/enums/AnswerInvalidEnum.java @@ -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; + } + +} diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java deleted file mode 100644 index 04eb497..0000000 --- a/src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mindskip.xzs.domain.vo; - -import lombok.Data; - -import java.io.Serializable; - -/** - * @author gonghl - */ -@Data -public class ExamMissVO implements Serializable { - - private Integer id; - - private Integer examId; - - private Integer examName; - - private Integer userId; - - private Integer userName; - - private static final long serialVersionUID = 1L; -} \ No newline at end of file diff --git a/src/main/java/com/mindskip/xzs/queue/ExamPaperTimeTask.java b/src/main/java/com/mindskip/xzs/queue/ExamPaperTimeTask.java deleted file mode 100644 index a6831b1..0000000 --- a/src/main/java/com/mindskip/xzs/queue/ExamPaperTimeTask.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.mindskip.xzs.queue; - -import lombok.Getter; -import lombok.Setter; - -import java.util.concurrent.Delayed; -import java.util.concurrent.TimeUnit; - -/** - * @author gonghl - */ - -@Getter -@Setter -public class ExamPaperTimeTask implements Delayed { - - private long examPaperId; - - private long expiry; - - @Override - public long getDelay(TimeUnit unit) { - return unit.convert(expiry - System.currentTimeMillis(), TimeUnit.MILLISECONDS); - } - - @Override - public int compareTo(Delayed o) { - return Long.compare(expiry, ((ExamPaperTimeTask) o).expiry); - } - -} \ No newline at end of file diff --git a/src/main/java/com/mindskip/xzs/repository/ExamMissMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamMissMapper.java deleted file mode 100644 index 43a45ce..0000000 --- a/src/main/java/com/mindskip/xzs/repository/ExamMissMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.mindskip.xzs.repository; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.mindskip.xzs.domain.ExamMiss; -import org.apache.ibatis.annotations.Mapper; - -/** - * @author gonghl - * @description 閽堝琛ㄣ�恡_exam_miss(璇曞嵎缂鸿��)銆戠殑鏁版嵁搴撴搷浣淢apper - * @createDate 2024-05-09 15:41:36 - * @Entity com.mindskip.xzs.examMiss.ExamMiss - */ -@Mapper -public interface ExamMissMapper extends BaseMapper<ExamMiss> { - -} - - - - diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java index 2e81460..7997772 100644 --- a/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java +++ b/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); } diff --git a/src/main/java/com/mindskip/xzs/service/ExamMissService.java b/src/main/java/com/mindskip/xzs/service/ExamMissService.java deleted file mode 100644 index 9463aeb..0000000 --- a/src/main/java/com/mindskip/xzs/service/ExamMissService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mindskip.xzs.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.mindskip.xzs.domain.ExamMiss; - -/** - * @author gonghl - * @description 閽堝琛ㄣ�恡_exam_miss(璇曞嵎缂鸿��)銆戠殑鏁版嵁搴撴搷浣淪ervice - * @createDate 2024-05-09 15:41:36 - */ -public interface ExamMissService extends IService<ExamMiss> { - -} diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java index 691162c..015aa52 100644 --- a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java +++ b/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); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamMissServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamMissServiceImpl.java deleted file mode 100644 index fc1a371..0000000 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamMissServiceImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.mindskip.xzs.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.mindskip.xzs.domain.ExamMiss; -import com.mindskip.xzs.repository.ExamMissMapper; -import com.mindskip.xzs.service.ExamMissService; -import org.springframework.stereotype.Service; - -/** - * @author gonghl - * @description 閽堝琛ㄣ�恡_exam_miss(璇曞嵎缂鸿��)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇 - * @createDate 2024-05-09 15:41:36 - */ -@Service -public class ExamMissServiceImpl extends ServiceImpl<ExamMissMapper, ExamMiss> implements ExamMissService { - -} - - - - diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java index f434bc1..cb4ac16 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java +++ b/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); - } } diff --git a/src/main/resources/mapper/ExamMissMapper.xml b/src/main/resources/mapper/ExamMissMapper.xml deleted file mode 100644 index 48d51b4..0000000 --- a/src/main/resources/mapper/ExamMissMapper.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper - PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.mindskip.xzs.repository.ExamMissMapper"> - - <resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.ExamMiss"> - <id property="id" column="id" jdbcType="INTEGER"/> - <result property="examId" column="exam_id" jdbcType="INTEGER"/> - <result property="userId" column="user_id" jdbcType="INTEGER"/> - </resultMap> - - <sql id="Base_Column_List"> - id,exam_id,user_id - </sql> -</mapper> diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml index 2e9cba5..4cf7b6d 100644 --- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml +++ b/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 diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml index de8bcd2..9a4c638 100644 --- a/src/main/resources/mapper/ExamPaperMapper.xml +++ b/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> -- Gitblit v1.8.0