From fe0a4c0495cf9f1a65343158c2a8c2d4a163e045 Mon Sep 17 00:00:00 2001
From: qirong <2032486488@qq.com>
Date: 星期二, 28 十一月 2023 21:16:21 +0800
Subject: [PATCH] 优化查询

---
 src/main/java/com/mindskip/xzs/controller/student/DashboardController.java  |    8 +++-----
 src/main/resources/mapper/ExamTemplatesMapper.xml                           |   25 ++++++++++++++-----------
 src/main/resources/mapper/ExamTemplatesUserCountMapper.xml                  |    5 +++++
 src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java               |   10 ++++++++++
 src/main/java/com/mindskip/xzs/base/SystemCode.java                         |    2 +-
 src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java       |    2 +-
 src/main/java/com/mindskip/xzs/repository/ExamTemplatesUserCountMapper.java |    2 ++
 src/main/resources/application.yml                                          |    3 +++
 8 files changed, 39 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/base/SystemCode.java b/src/main/java/com/mindskip/xzs/base/SystemCode.java
index 56774e9..4b979b1 100644
--- a/src/main/java/com/mindskip/xzs/base/SystemCode.java
+++ b/src/main/java/com/mindskip/xzs/base/SystemCode.java
@@ -18,7 +18,7 @@
     /**
      * UNAUTHORIZED
      */
-    UNAUTHORIZED(401, "鐢ㄦ埛鏈櫥褰�"),
+    UNAUTHORIZED(401, "鐢ㄦ埛鏈櫥褰�1"),
     /**
      * UNAUTHORIZED
      */
diff --git a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java b/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java
index 7ca8e44..a011aec 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java
@@ -108,23 +108,21 @@
 
         ExamTemplatesVO vo = new ExamTemplatesVO();
         vo.setStatus("0");
+        vo.setUserId(user.getId());
         List<ExamTemplates> gets = templatesMapper.gets(vo);
         ExamTemplatesUserCountVO templatesUserCountVO = new ExamTemplatesUserCountVO();
         templatesUserCountVO.setUserId(user.getId());
 
         for (ExamTemplates get : gets) {
             templatesUserCountVO.setId(get.getId());
-            List<ExamTemplatesUser> byUserId = examTemplatesUserMapper.getByUserId(user.getId(), get.getId());
-            if(byUserId.size()>0){
-                List<ExamTemplatesUserCount> byUserIdAndTemplatesId = templatesUserCountMapper.getByUserIdAndTemplatesId(templatesUserCountVO);
-                if(byUserIdAndTemplatesId.size()==0){
+                Integer number = templatesUserCountMapper.getCountByUserIdAndTemplatesId(templatesUserCountVO);
+                if(number==0){
                     PaperInfo info = new PaperInfo();
                     info.setId(get.getId());
                     info.setName(get.getName());
                     info.setStatus("1");
                     paperInfos.add(info);
                 }
-            }
         }
         indexVM.setFixedPaper(paperInfos);
 
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java
index d739ef7..e36ffce 100644
--- a/src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java
+++ b/src/main/java/com/mindskip/xzs/domain/vo/ExamTemplatesVO.java
@@ -17,6 +17,7 @@
 
     private Integer[] subjectId;
     private String status;
+    private Integer userId;
 
     public Integer getId() {
         return id;
@@ -58,6 +59,14 @@
         this.status = status;
     }
 
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
     @Override
     public String toString() {
         return "ExamTemplatesVO{" +
@@ -66,6 +75,7 @@
                 ", ctime=" + ctime +
                 ", subjectId=" + Arrays.toString(subjectId) +
                 ", status=" + status +
+                ", userId=" + userId +
                 '}';
     }
 }
diff --git a/src/main/java/com/mindskip/xzs/repository/ExamTemplatesUserCountMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamTemplatesUserCountMapper.java
index 94c0c69..ae612a5 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamTemplatesUserCountMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamTemplatesUserCountMapper.java
@@ -26,4 +26,6 @@
     List<ExamTemplatesUserCount> getByTemplates(@Param("id") Integer id);
 
     List<UserCountExcelVO> getByExamTemplates(@Param("id") Integer id);
+
+    Integer getCountByUserIdAndTemplatesId(ExamTemplatesUserCountVO examTemplatesUserCountVO);
 }
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 9d80ead..2881df0 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -492,7 +492,7 @@
         Integer judgment = examPaperEditRequestVM.getQuestionTypeVMS().stream().mapToInt(QuestionTypeVM::getTrueFalse).sum();
 
 
-        if ((singleChoice * 2 + multipleChoice * 2 + judgment * 2) != new Integer(100)) {
+        if ((singleChoice * 2 + multipleChoice * 2 + judgment * 2) != new Integer(10)) {
             throw new QuestionException();
         }
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 675ed9e..9161db7 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,4 +1,7 @@
 server:
+  servlet:
+    session:
+      timeout: 3600
   port: 8000
   undertow:
     io-threads: 16
diff --git a/src/main/resources/mapper/ExamTemplatesMapper.xml b/src/main/resources/mapper/ExamTemplatesMapper.xml
index 0933165..c6a450a 100644
--- a/src/main/resources/mapper/ExamTemplatesMapper.xml
+++ b/src/main/resources/mapper/ExamTemplatesMapper.xml
@@ -32,17 +32,20 @@
 
     <select id="gets" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.domain.vo.ExamTemplatesVO">
         select
-        <include refid="Base_Column_List"/>
-        from t_exam_templates
-        where
-            <choose>
-                <when test="status != null">
-                    status = 0
-                </when>
-                <otherwise>
-                    status is null
-                </otherwise>
-            </choose>
+        e.*
+        from t_exam_templates e
+        inner join t_exam_templates_user u on e.id = u.templates_id
+        <where>
+            <if test="status != null">
+                and e.status = 0
+            </if>
+            <if test="status == null">
+                and e.status is null
+            </if>
+            <if test="userId != null">
+                and u.user_id = #{userId}
+            </if>
+        </where>
     </select>
 
     <select id="getById" resultMap="BaseResultMap">
diff --git a/src/main/resources/mapper/ExamTemplatesUserCountMapper.xml b/src/main/resources/mapper/ExamTemplatesUserCountMapper.xml
index fe5bc7d..15c3234 100644
--- a/src/main/resources/mapper/ExamTemplatesUserCountMapper.xml
+++ b/src/main/resources/mapper/ExamTemplatesUserCountMapper.xml
@@ -61,6 +61,11 @@
         where user_id = #{userId}  and exam_templates_id = #{id}
     </select>
 
+    <select id="getCountByUserIdAndTemplatesId" resultType="java.lang.Integer" parameterType="com.mindskip.xzs.domain.vo.ExamTemplatesUserCountVO">
+        select count(*) from t_exam_templates_user_count
+        where user_id = #{userId}  and exam_templates_id = #{id}
+    </select>
+
     <select id="getByTemplates" resultMap="BaseResultMap">
         select * from t_exam_templates_user_count
         where exam_templates_id = #{id}

--
Gitblit v1.8.0