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