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