From b661bcf7e065092c876e052bad0bfaecb9dc0c17 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期二, 12 十一月 2024 21:21:06 +0800
Subject: [PATCH] 优化错题查询
---
src/main/resources/mapper/ExamMapper.xml | 51 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 42 insertions(+), 9 deletions(-)
diff --git a/src/main/resources/mapper/ExamMapper.xml b/src/main/resources/mapper/ExamMapper.xml
index 62d1c81..61a44bf 100644
--- a/src/main/resources/mapper/ExamMapper.xml
+++ b/src/main/resources/mapper/ExamMapper.xml
@@ -16,13 +16,9 @@
<result column="teacher_id" property="teacherId" />
<result column="class_name" property="className" />
<result column="name" property="examPaperName" />
+ <result column="isContinue" property="isContinue" />
+ <result column="submitStatus" property="submitStatus" />
</resultMap>
-
-
-
-
-
-
<select id="getById" resultMap="BaseResultMap">
SELECT
@@ -61,9 +57,9 @@
TEP.name
FROM
t_exam TE
- INNER JOIN t_user TU ON TU.id = TE.teacher_id AND TU.deleted = 0
- INNER JOIN t_classes TC ON TC.id = TE.classes_id AND TC.deleted = 0
- INNER JOIN t_exam_paper TEP ON TEP.id = TE.exam_paper_id AND TEP.deleted = 0
+ INNER JOIN t_user TU ON TU.id = TE.teacher_id AND TU.deleted = 0 AND TU.id = #{userId}
+ LEFT JOIN t_classes TC ON TC.id = TE.classes_id AND TC.deleted = 0
+ LEFT JOIN t_exam_paper TEP ON TEP.id = TE.exam_paper_id AND TEP.deleted = 0
WHERE
TE.deleted = 0
<if test="query.examName != null and query.examName != ''">
@@ -72,6 +68,43 @@
<if test="query.classesId != null">
AND TE.classes_id = #{query.classesId}
</if>
+ ORDER BY
+ TE.create_time DESC
+ </select>
+
+
+ <select id="studentPage" resultMap="BaseResultMap">
+ SELECT DISTINCT
+ TE.exam_name,
+ TE.exam_paper_id,
+ TE.classes_id,
+ TE.exam_paper_type,
+ TE.exam_place,
+ TE.status,
+ IF(TE.status != 'not_start', IF(TE.status = 'ing', 2, 1), 0) as orderc,
+ TE.start_time,
+ TE.end_time,
+ TE.create_time,
+ TE.teacher_id,
+ TE.id,
+ TC.class_name,
+ TEP.name,
+ TEST.status as submitStatus
+ FROM
+ t_exam TE
+ INNER JOIN t_classes TC ON TC.id = TE.classes_id AND TC.deleted = 0 AND TC.status = 'normal'
+ INNER JOIN t_classes_user TCU ON TC.id = TCU.classes_id And TCU.deleted = 0 AND TC.deleted = 0 AND TCU.user_id = #{userId}
+ INNER JOIN t_exam_paper TEP ON TEP.id = TE.exam_paper_id AND TEP.deleted = 0
+ LEFT JOIN t_exam_submit_temp TEST ON TEST.exam_id = TE.id
+ WHERE
+ TE.deleted = 0 and (TEST.deleted =0 or TEST.deleted is null)
+ <if test="query.examName != null and query.examName != ''">
+ AND TE.exam_name like concat('%', #{query.examName}, '%')
+ </if>
+ <if test="query.status != null and query.status != ''">
+ AND TE.status = #{query.status}
+ </if>
+ ORDER BY FIELD(TE.status, 'ing', 'not_start', 'finished'), orderc, TE.create_time DESC
</select>
</mapper>
--
Gitblit v1.8.0