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 | 29 ++++++++++++++++-------------
1 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/main/resources/mapper/ExamMapper.xml b/src/main/resources/mapper/ExamMapper.xml
index 9c67ad9..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
@@ -72,36 +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
+ 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', 1, 2), 0) as orderc,
+ 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
+ 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
- INNER JOIN t_classes_user TCU ON TC.id = TCU.classes_id AND TC.deleted = 0 AND TCU.user_id = #{userId}
+ 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
+ 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>
- ORDER BY orderc DESC
+ <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