From 73ff2a87258203049fc8d885709273eedfacd526 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 22 五月 2024 14:29:45 +0800
Subject: [PATCH] 题目按课目导出
---
src/main/resources/mapper/QuestionMapper.xml | 55 +++++++++++++--------------
src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java | 5 +-
src/main/java/com/mindskip/xzs/vo/QuestionExportVO.java | 25 +-----------
3 files changed, 32 insertions(+), 53 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
index 5313919..1dbbad1 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/QuestionController.java
@@ -197,9 +197,8 @@
.doWrite(data);
}
- @GetMapping("/question/export")
- public void importQuestion(QuestionExportVO query, HttpServletResponse response) throws IOException {
- query.formartTime();
+ @PostMapping("/question/export")
+ public void exportQuestion(@RequestBody QuestionExportVO query, HttpServletResponse response) throws IOException {
// 鏌ヨ瀵煎嚭鏁版嵁
List<QuestionImportVO> exportData = questionService.export(query);
// 鏋勫缓鏁版嵁
diff --git a/src/main/java/com/mindskip/xzs/vo/QuestionExportVO.java b/src/main/java/com/mindskip/xzs/vo/QuestionExportVO.java
index b3a8c13..0b82070 100644
--- a/src/main/java/com/mindskip/xzs/vo/QuestionExportVO.java
+++ b/src/main/java/com/mindskip/xzs/vo/QuestionExportVO.java
@@ -6,6 +6,7 @@
import org.springframework.util.StringUtils;
import java.util.Date;
+import java.util.List;
/**
* @author锛歺p
@@ -15,29 +16,9 @@
public class QuestionExportVO {
/**
- * 棰樺瀷
+ * 璇剧洰
*/
- private Integer questionType;
+ private List<Integer> subjectIds;
- /**
- * 寮�濮嬫椂闂�
- */
- private String startStr;
- private Date start;
-
- /**
- * 缁撴潫鏃堕棿
- */
- private String endStr;
- private Date end;
-
- public void formartTime() {
- if (StringUtils.hasText(startStr)) {
- start = DateTimeUtil.parse(startStr, "yyyy-MM-dd HH:mm:ss");
- }
- if (StringUtils.hasText(endStr)) {
- end = DateTimeUtil.parse(endStr, "yyyy-MM-dd HH:mm:ss");
- }
- }
}
diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml
index 5b3b415..4e1b47a 100644
--- a/src/main/resources/mapper/QuestionMapper.xml
+++ b/src/main/resources/mapper/QuestionMapper.xml
@@ -249,16 +249,18 @@
<select id="export" resultMap="exportMap">
SELECT
+ DISTINCT
q.*, ttc.content
FROM
t_question q
INNER JOIN t_text_content ttc on q.info_text_content_id = ttc.id AND q.deleted = 0
+ INNER JOIN t_question_subject tqs on q.id = tqs.question_id
<where>
- <if test="query.questionType != null">
- q.question_type = #{query.questionType}
- </if>
- <if test="query.start != null and query.end != null">
- q.create_time between #{query.start} and #{query.end}
+ <if test="query.subjectIds != null and query.subjectIds.size > 0">
+ AND tqs.subject_id IN
+ <foreach collection="query.subjectIds" open="(" separator="," close=")" item="subjectId">
+ #{subjectId}
+ </foreach>
</if>
</where>
</select>
@@ -284,20 +286,21 @@
<select id="getVoByIds" resultType="com.mindskip.xzs.domain.vo.QuestionVO">
SELECT
- tq.id,
- tq.question_type as questionType,
- tq.difficult,
- ttc.content as contentJson
+ tq.id,
+ tq.question_type as questionType,
+ tq.difficult,
+ ttc.content as contentJson
FROM
- t_question tq
- INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.deleted = 0 AND tq.id IN
+ t_question tq
+ INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.deleted = 0 AND tq.id IN
<foreach
collection="ids" open="(" separator="," close=")" item="id">
#{id}
</foreach>
</select>
- <select id="selectQuestion" resultType="com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM">
+ <select id="selectQuestion"
+ resultType="com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM">
select a.id,
a.question_type,
JSON_VALUE(d.content, '$.titleContent') as shortTitle,
@@ -307,31 +310,27 @@
inner join t_subject c on b.subject_id = c.id and c.deleted = 0
inner join t_text_content d on a.info_text_content_id = d.id
where a.deleted = 0
- AND JSON_VALUE(d.content, '$.titleContent') like concat('%', #{shortTitle}, '%')
+ AND JSON_VALUE(d.content, '$.titleContent') like concat('%', #{shortTitle}, '%')
group by a.id, question_type, a.create_time
HAVING GROUP_CONCAT(c.name) like concat('%', #{subjectName}, '%')
order by a.create_time
</select>
<select id="selectContentById" resultType="com.mindskip.xzs.domain.vo.QuestionVO">
- SELECT
- tq.id,
- tq.question_type as questionType,
- tq.difficult,
- ttc.content as contentJson,
- tq.correct
- FROM
- t_question tq
- INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.id = #{id}
+ SELECT tq.id,
+ tq.question_type as questionType,
+ tq.difficult,
+ ttc.content as contentJson,
+ tq.correct
+ FROM t_question tq
+ INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.id = #{id}
</select>
<select id="getAnswer" resultType="com.mindskip.xzs.domain.vo.QuestionVO">
- SELECT
- tq.correct,
- ttc.content as contentJson
- FROM
- t_question tq
- INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.id = #{id} AND tq.deleted = 0
+ SELECT tq.correct,
+ ttc.content as contentJson
+ FROM t_question tq
+ INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id AND tq.id = #{id} AND tq.deleted = 0
</select>
</mapper>
--
Gitblit v1.8.0