From 77be36cc9077b09186e69440f3204f9e623c335a Mon Sep 17 00:00:00 2001
From: qirong <2032486488@qq.com>
Date: 星期一, 26 六月 2023 15:52:24 +0800
Subject: [PATCH] 试卷题目顺序打乱

---
 src/main/resources/mapper/ExamPaperMapper.xml |   73 ++++++++++++++++++++++++++----------
 1 files changed, 53 insertions(+), 20 deletions(-)

diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index c835797..e99791d 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -271,36 +271,59 @@
 
   <select id="studentPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM">
     SELECT
-    <include refid="Base_Column_List"/>
-    FROM t_exam_paper
+    e.*
+    FROM t_exam_paper e
+    LEFT JOIN t_exam_paper_subject s on e.id = s.exam_paper_id
     <where>
-       and deleted=0
+       and e.deleted=0 and s.deleted = 0
       <if test="subjectId != null ">
-        and subject_id=#{subjectId}
+        and s.subject_id=#{subjectId}
       </if>
       <if test="levelId != null ">
-        and grade_level=#{levelId}
+        and e.grade_level=#{levelId}
       </if>
-       and paper_type=#{paperType}
+      <if test="paperType == 1">
+        and e.paper_type in (1,7)
+      </if>
+      <if test="paperType == 4">
+        and e.paper_type = #{paperType}
+      </if>
+
     </where>
+    group by e.id
   </select>
 
 
   <select id="indexPaper" resultMap="PaperInfoResultMap" parameterType="com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter">
-    SELECT e.id,e.name,e.limit_start_time,e.limit_end_time
-    FROM t_exam_paper e
-    LEFT JOIN t_exam_paper_department d on d.exam_paper_id = e.id
-    <where>
-      and e.deleted=0 and d.deleted = 0
-      and e.paper_type= #{examPaperType}
-      and d.department_id=#{gradeLevel}
-      <if test="examPaperType == 3 ">
-      </if>
-      <if test="examPaperType == 4 ">
-        and  #{dateTime} between e.limit_start_time  and e.limit_end_time
-      </if>
-    </where>
-    ORDER BY e.id  desc limit 5
+      select * from(
+      SELECT e.id,e.name,e.limit_start_time,e.limit_end_time
+      FROM t_exam_paper e
+      LEFT JOIN t_exam_paper_department d on d.exam_paper_id = e.id
+      <where>
+          and e.deleted=0 and d.deleted = 0
+          and e.paper_type in
+          <foreach item="examPaperType" collection="examPaperType" open="(" separator=","
+                   close=")">
+              #{examPaperType}
+          </foreach>
+          <if test="gradeLevel != '' and gradeLevel != null">
+              and d.department_id=#{gradeLevel}
+          </if>
+          <if test="examPaperType == 3 ">
+          </if>
+          <if test="examPaperType == 4 ">
+              and #{dateTime} between e.limit_start_time and e.limit_end_time
+          </if>
+      </where>
+      ORDER BY e.id desc ) t
+      union all
+      select * from (
+      SELECT e.id,e.name,e.limit_start_time,e.limit_end_time
+      FROM t_exam_paper e
+      LEFT JOIN t_exam_paper_user u on u.exam_paper_id = e.id
+      where
+      e.deleted=0 and u.deleted = 0
+      and u.user_id = #{userId} ORDER BY e.id desc ) t
   </select>
 
 
@@ -344,4 +367,14 @@
     </foreach>
   </delete>
 
+  <select id="gets" resultMap="BaseResultMap">
+    select * from t_exam_paper
+    where id in
+    <foreach item="id" collection="ids" open="(" separator=","
+             close=")">
+      #{id}
+    </foreach>
+    and deleted = 0
+  </select>
+
 </mapper>

--
Gitblit v1.8.0