From 21ff1b4f2ef67975eef303bff66ef60388243cf1 Mon Sep 17 00:00:00 2001
From: qirong <2032486488@qq.com>
Date: 星期三, 05 七月 2023 16:42:03 +0800
Subject: [PATCH] 随机试卷修改和统计

---
 src/main/resources/mapper/ExamPaperMapper.xml |  113 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 81 insertions(+), 32 deletions(-)

diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index 4854fe2..e99791d 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -228,23 +228,26 @@
 
   <select id="page" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM">
     SELECT
-    <include refid="Base_Column_List"/>
-    FROM t_exam_paper
+    e.*
+    FROM t_exam_paper e
+    left join t_exam_paper_department d on e.id = d.exam_paper_id
+    left join t_exam_paper_subject s on e.id = s.exam_paper_id
     <where>
-        and deleted=0
+        and e.deleted=0 and d.deleted = 0
       <if test="id != null ">
-        and id= #{id}
+        and e.id= #{id}
       </if>
       <if test="level != null ">
-        and grade_level= #{level}
+        and d.department_id= #{level}
       </if>
       <if test="subjectId != null ">
-        and subject_id= #{subjectId}
+        and s.subject_id= #{subjectId}
       </if>
       <if test="paperType != null ">
-        and paper_type= #{paperType}
+        and e.paper_type= #{paperType}
       </if>
     </where>
+    group by e.id
   </select>
 
 
@@ -253,47 +256,74 @@
 
   <select id="taskExamPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM">
     SELECT
-    <include refid="Base_Column_List"/>
-    FROM t_exam_paper
+    e.*
+    FROM t_exam_paper e
+    LEFT JOIN t_exam_paper_department s on s.exam_paper_id = e.id
     <where>
-      and deleted=0
-      and task_exam_id is null
-      and grade_level= #{level}
-      and paper_type=#{paperType}
+      and e.deleted=0 and s.deleted = 0
+      and e.task_exam_id is null
+      and s.department_id =
+        #{level}
+      and e.paper_type=#{paperType}
     </where>
+    group by e.id
   </select>
 
   <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 id,name,limit_start_time,limit_end_time
-    FROM t_exam_paper
-    <where>
-      and deleted=0
-      and paper_type= #{examPaperType}
-      and grade_level=#{gradeLevel}
-      <if test="examPaperType == 3 ">
-      </if>
-      <if test="examPaperType == 4 ">
-        and  #{dateTime} between limit_start_time  and limit_end_time
-      </if>
-    </where>
-    ORDER BY 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>
 
 
@@ -328,4 +358,23 @@
     </foreach>
   </update>
 
+  <delete id="removeByIds" parameterType="java.lang.Integer">
+    delete from t_exam_paper
+    where id in
+    <foreach item="id" collection="ids" open="(" separator=","
+             close=")">
+      #{id}
+    </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