From 97c5552f705e03a3a6e5864e3be6b1078844a4d3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 09 五月 2024 18:09:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java |   16 ++
 src/main/resources/mapper/ExamMissMapper.xml                                     |   16 +++
 src/main/java/com/mindskip/xzs/domain/User.java                                  |    6 +
 src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java         |   10 +
 src/main/java/com/mindskip/xzs/service/ExamMissService.java                      |   13 ++
 src/main/java/com/mindskip/xzs/controller/admin/ExamMissController.java          |   20 ++++
 src/main/java/com/mindskip/xzs/domain/ExamMiss.java                              |   25 +++++
 src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java                         |   24 ++++
 src/main/java/com/mindskip/xzs/queue/ExamPaperTimeTask.java                      |   31 ++++++
 src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java            |   43 +++++++-
 src/main/java/com/mindskip/xzs/service/ExamPaperService.java                     |    4 
 src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java                   |    4 
 src/main/resources/mapper/ExamPaperMapper.xml                                    |   15 +++
 src/main/java/com/mindskip/xzs/repository/ExamMissMapper.java                    |   20 ++++
 src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperSubmitVM.java     |   13 ++
 src/main/java/com/mindskip/xzs/service/impl/ExamMissServiceImpl.java             |   21 ++++
 16 files changed, 267 insertions(+), 14 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
new file mode 100644
index 0000000..a2ed3a5
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamMissController.java
@@ -0,0 +1,20 @@
+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 3a9c4f1..6881c2c 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperController.java
@@ -1,11 +1,11 @@
 package com.mindskip.xzs.controller.admin;
 
+import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.base.BaseApiController;
 import com.mindskip.xzs.base.RestResponse;
 import com.mindskip.xzs.domain.ExamPaper;
 import com.mindskip.xzs.domain.ExamPaperSubject;
 import com.mindskip.xzs.domain.vo.PaperExcelVO;
-import com.mindskip.xzs.domain.vo.UserCountExcelVO;
 import com.mindskip.xzs.service.ExamPaperDepartmentService;
 import com.mindskip.xzs.service.ExamPaperService;
 import com.mindskip.xzs.service.ExamPaperSubjectService;
@@ -13,11 +13,10 @@
 import com.mindskip.xzs.utility.DateTimeUtil;
 import com.mindskip.xzs.utility.PageInfoHelper;
 import com.mindskip.xzs.utility.excel.ExcelUtils;
+import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM;
-import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamResponseVM;
-import com.github.pagehelper.PageInfo;
 import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -87,6 +86,11 @@
         model.setUserIds(userIds);
         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 3fb94ec..155183d 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperAnswerController.java
@@ -1,5 +1,6 @@
 package com.mindskip.xzs.controller.student;
 
+import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.base.BaseApiController;
 import com.mindskip.xzs.base.RestResponse;
 import com.mindskip.xzs.domain.*;
@@ -10,14 +11,11 @@
 import com.mindskip.xzs.utility.DateTimeUtil;
 import com.mindskip.xzs.utility.ExamUtil;
 import com.mindskip.xzs.utility.PageInfoHelper;
-import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM;
 import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO;
-import com.mindskip.xzs.viewmodel.student.exam.ExamPaperReadVM;
 import com.mindskip.xzs.viewmodel.student.exam.ExamPaperReadVO;
 import com.mindskip.xzs.viewmodel.student.exam.ExamPaperSubmitVM;
 import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM;
 import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM;
-import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.web.bind.annotation.*;
@@ -36,15 +34,17 @@
     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) {
+    public ExamPaperAnswerController(ExamPaperAnswerService examPaperAnswerService, ExamPaperService examPaperService, SubjectService subjectService, ApplicationEventPublisher eventPublisher, ExamPaperSubjectService examPaperSubjectService, ExamTemplatesUserCountService examTemplatesUserCountService, ExamMissService examMissService) {
         this.examPaperAnswerService = examPaperAnswerService;
         this.examPaperService = examPaperService;
         this.subjectService = subjectService;
         this.eventPublisher = eventPublisher;
         this.examPaperSubjectService = examPaperSubjectService;
         this.examTemplatesUserCountService = examTemplatesUserCountService;
+        this.examMissService = examMissService;
     }
 
 
@@ -99,6 +99,14 @@
             examTemplatesUserCount.setExamTemplatesId(examPaperSubmitVM.getTemplatesId());
             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
new file mode 100644
index 0000000..e972e42
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/ExamMiss.java
@@ -0,0 +1,25 @@
+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/User.java b/src/main/java/com/mindskip/xzs/domain/User.java
index 70f075f..6f3c34d 100644
--- a/src/main/java/com/mindskip/xzs/domain/User.java
+++ b/src/main/java/com/mindskip/xzs/domain/User.java
@@ -80,7 +80,13 @@
      */
     private String deptAdmin;
 
+    /**
+     * 鐘跺喌
+     */
     private UserConditionEnum condition;
 
+    /**
+     * 鍏蜂綋鎯呭喌
+     */
     private String conditionDetail;
 }
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java
new file mode 100644
index 0000000..04eb497
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/ExamMissVO.java
@@ -0,0 +1,24 @@
+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
new file mode 100644
index 0000000..a6831b1
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/queue/ExamPaperTimeTask.java
@@ -0,0 +1,31 @@
+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
new file mode 100644
index 0000000..43a45ce
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/repository/ExamMissMapper.java
@@ -0,0 +1,20 @@
+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 7997772..2e81460 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
@@ -1,5 +1,6 @@
 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;
@@ -38,4 +39,7 @@
 
     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
new file mode 100644
index 0000000..9463aeb
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/ExamMissService.java
@@ -0,0 +1,13 @@
+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 3fd1186..691162c 100644
--- a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
+++ b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
@@ -37,4 +37,8 @@
     List<ExamPaper> gets(Integer[] ids);
 
     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
new file mode 100644
index 0000000..fc1a371
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamMissServiceImpl.java
@@ -0,0 +1,21 @@
+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 2f54f3a..f434bc1 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -1,41 +1,41 @@
 package com.mindskip.xzs.service.impl;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.mindskip.xzs.configuration.spring.exception.QuestionException;
 import com.mindskip.xzs.domain.*;
-import com.mindskip.xzs.domain.TextContent;
 import com.mindskip.xzs.domain.enums.ExamPaperTypeEnum;
 import com.mindskip.xzs.domain.enums.QuestionTypeEnum;
 import com.mindskip.xzs.domain.exam.ExamPaperQuestionItemObject;
 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;
 import com.mindskip.xzs.service.*;
 import com.mindskip.xzs.service.enums.ActionEnum;
 import com.mindskip.xzs.utility.DateTimeUtil;
+import com.mindskip.xzs.utility.ExamUtil;
 import com.mindskip.xzs.utility.JsonUtil;
 import com.mindskip.xzs.utility.ModelMapperSingle;
-import com.mindskip.xzs.utility.ExamUtil;
+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;
 import com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter;
 import com.mindskip.xzs.viewmodel.student.dashboard.PaperInfo;
 import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
-import com.mindskip.xzs.domain.ExamPaper;
-import com.mindskip.xzs.domain.Question;
-import com.mindskip.xzs.domain.User;
 import org.modelmapper.ModelMapper;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 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,8 +55,24 @@
     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) {
@@ -599,4 +615,17 @@
 
         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/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperSubmitVM.java b/src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperSubmitVM.java
index 5cf6347..d2481bd 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperSubmitVM.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/student/exam/ExamPaperSubmitVM.java
@@ -23,6 +23,19 @@
     //妯℃澘id
     private Integer templatesId;
 
+    /**
+     * 鏄惁鏃堕棿缁撴潫鑷姩鎻愪氦
+     */
+    private boolean isAutoCommit;
+
+    public boolean isAutoCommit() {
+        return isAutoCommit;
+    }
+
+    public void setAutoCommit(boolean autoCommit) {
+        isAutoCommit = autoCommit;
+    }
+
     public Integer getId() {
         return id;
     }
diff --git a/src/main/resources/mapper/ExamMissMapper.xml b/src/main/resources/mapper/ExamMissMapper.xml
new file mode 100644
index 0000000..48d51b4
--- /dev/null
+++ b/src/main/resources/mapper/ExamMissMapper.xml
@@ -0,0 +1,16 @@
+<?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/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index 9a4c638..de8bcd2 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -423,4 +423,19 @@
     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