From d910a3e7ad5bc3a5e5443f506d05bbb9e83a4c8e Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 31 十月 2024 17:14:33 +0800
Subject: [PATCH] 生成试卷时如果题目列表为空,则不反悔这个题型的数据
---
src/main/resources/mapper/ExamMapper.xml | 30 +++++++++++++++++-------------
1 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/src/main/resources/mapper/ExamMapper.xml b/src/main/resources/mapper/ExamMapper.xml
index 9c67ad9..eccffe0 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,44 @@
<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,
+ (SELECT IF(COUNT(*) > 0, true, false) FROM t_exam_submit_temp WHERE user_id = #{userId} AND status = 'temp') as isContinue
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