From 6bf6111fdd4245cf6f4c5cfad9314fe8d570bd98 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 17 五月 2024 22:18:18 +0800
Subject: [PATCH] feat:随机试卷补考

---
 src/main/resources/mapper/ExamPaperAnswerMapper.xml |   41 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
index a730052..7b059bf 100644
--- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -242,6 +242,21 @@
     )
   </update>
 
+  <update id="setMissExamByTemplate">
+    update t_exam_paper_answer
+    set invalid = 1
+    where exam_paper_id
+      in
+    <foreach collection="paperIds" item="item" separator="," open="(" close=")">
+      #{item}
+    </foreach>
+    and create_user in (
+    <foreach collection="userIds" item="item" index="index" separator=",">
+      #{item}
+    </foreach>
+    )
+  </update>
+
 
     <select id="studentPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageVM">
     SELECT
@@ -257,7 +272,17 @@
 
 
   <select id="selectAllCount"  resultType="java.lang.Integer">
-		SELECT count(*) from t_exam_paper_answer
+	    select count(*) from t_exam_paper_answer a
+        inner join
+        (select user_id from t_user_department
+        <if test="deptIds != null and deptIds.size() > 0">
+          where department_id in
+          <foreach collection="deptIds" item="item" open="(" separator="," close=")">
+              #{item}
+          </foreach>
+        </if>
+        group by user_id)
+        b on a.create_user = b.user_id
   </select>
 
 
@@ -412,8 +437,11 @@
     FROM
     t_exam_paper_answer a
     INNER JOIN (SELECT * FROM t_user_department
-    <if test="departmentId != null and departmentId != ''">
-      WHERE department_id = #{departmentId}
+    <if test="departmentId != null and departmentId.size() > 0">
+      WHERE department_id IN
+      <foreach collection="departmentId" item="item" open="(" separator="," close=")">
+        #{item}
+      </foreach>
     </if>
     GROUP BY user_id) b ON a.create_user = b.user_id
     LEFT JOIN t_user c ON a.create_user = c.id
@@ -438,8 +466,11 @@
     </if>
     LEFT JOIN t_exam_paper_answer c ON a.exam_paper_id = c.exam_paper_id AND a.user_id = c.create_user AND (c.invalid IS NULL OR c.invalid = 0)
     INNER JOIN (SELECT * FROM t_user_department
-    <if test="departmentId != null and departmentId != ''">
-      WHERE department_id = #{departmentId}
+    <if test="departmentId != null and departmentId.size() > 0">
+      WHERE department_id IN
+      <foreach collection="departmentId" item="item" open="(" separator="," close=")">
+        #{item}
+      </foreach>
     </if>
     GROUP BY user_id) d ON a.user_id = d.user_id
   </select>

--
Gitblit v1.8.0