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