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/QuestionMapper.xml | 109 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 87 insertions(+), 22 deletions(-)
diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml
index c647f09..69b64af 100644
--- a/src/main/resources/mapper/QuestionMapper.xml
+++ b/src/main/resources/mapper/QuestionMapper.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ycl.jxkg.mapper.QuestionMapper">
- <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.Question">
+
+ <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.Question">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="question_type" jdbcType="INTEGER" property="questionType"/>
<result column="subject_id" jdbcType="INTEGER" property="subjectId"/>
- <result column="score" jdbcType="INTEGER" property="score"/>
- <result column="grade_level" jdbcType="INTEGER" property="gradeLevel"/>
<result column="difficult" jdbcType="INTEGER" property="difficult"/>
<result column="correct" jdbcType="VARCHAR" property="correct"/>
- <result column="info_text_content_id" jdbcType="INTEGER" property="infoTextContentId"/>
+ <result column="content" jdbcType="VARCHAR" property="content"/>
<result column="create_user" jdbcType="INTEGER" property="createUser"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
@@ -17,32 +16,48 @@
</resultMap>
<sql id="Base_Column_List">
id
- , question_type, subject_id, score, grade_level, difficult, correct, info_text_content_id,
- create_user, status, create_time, deleted
+ , question_type, subject_id, difficult, correct, content, create_user, status, create_time, deleted
</sql>
-
- <select id="page" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.vo.admin.question.QuestionPageRequestVO">
+ <select id="page" resultType="com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO"
+ parameterType="com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO">
SELECT
- <include refid="Base_Column_List"/>
- FROM t_question
+ tq.*,
+ CASE WHEN tq.question_type = 1 THEN '鍗曢�夐'
+ WHEN tq.question_type = 2 THEN '澶氶�夐'
+ WHEN tq.question_type = 3 THEN '鍒ゆ柇棰�'
+ WHEN tq.question_type = 4 THEN '濉┖棰�'
+ WHEN tq.question_type = 5 THEN '绠�绛旈'
+ WHEN tq.question_type = 6 THEN '璇煶棰�'
+ WHEN tq.question_type = 7 THEN '璁$畻棰�'
+ WHEN tq.question_type = 8 THEN '鍒嗘瀽棰�'
+ END AS questionTypeName,
+ ts.name AS subjectName,
+ tu.real_name AS createUserName
+ FROM t_question tq
+ LEFT JOIN t_subject ts ON tq.subject_id = ts.id
+ LEFT JOIN t_user tu ON tq.create_user = tu.id
<where>
- and deleted=0
- <if test="id != null ">
- and id= #{id}
+ and tq.deleted = 0
+ <if test="id != null">
+ and tq.id = #{id}
</if>
- <if test="level != null ">
- and grade_level= #{level}
+ <if test="status != null">
+ and tq.status = #{status}
</if>
- <if test="subjectId != null ">
- and subject_id= #{subjectId}
+ <if test="subjectId != null and subjectId.size() > 0">
+ and tq.subject_id in
+ <foreach collection="subjectId" item="item" separator="," open="(" close=")">#{item}</foreach>
</if>
- <if test="questionType != null ">
- and question_type= #{questionType}
+ <if test="questionType != null and questionType.size() > 0">
+ and tq.question_type in
+ <foreach collection="questionType" item="item" separator="," open="(" close=")">#{item}</foreach>
</if>
- <if test="content != null">
- and info_text_content_id in (SELECT id FROM t_text_content WHERE content like concat('%',#{content},'%')
- )
+ <if test="content != null and content != ''">
+ and instr(tq.content, #{content})
+ </if>
+ <if test="title != null and title != ''">
+ and title like CONCAT('%', #{title}, '%')
</if>
</where>
</select>
@@ -75,4 +90,54 @@
GROUP BY create_time
</select>
+ <select id="getAnswerInfo" resultType="com.ycl.jxkg.domain.entity.Question">
+ SELECT id, question_type, correct FROM t_question WHERE id in
+ <foreach collection="questionIds" open="(" item="id" close=")" separator=",">#{id}</foreach>
+ </select>
+
+ <select id="selectByDifAndSub" resultType="java.lang.Integer">
+ SELECT COUNT(*) FROM t_question
+ <where>
+ deleted = 0 and status = 1
+ <if test="subjectId!=null">and subject_id = #{subjectId}</if>
+ <if test="difficult!=null">AND difficult = #{difficult}</if>
+ <if test="questionType!=null">AND question_type = #{questionType}</if>
+ </where>
+
+ </select>
+
+ <select id="getRandomQuestion" resultMap="BaseResultMap">
+ SELECT
+ *
+ FROM
+ t_question tq
+ <where>
+ tq.deleted = 0 and tq.status = 1
+ <if test="subjectId!=null">and tq.subject_id = #{subjectId}</if>
+ <if test="difficult!=null">AND tq.difficult = #{difficult}</if>
+ <if test="questionType!=null">AND tq.question_type = #{questionType}</if>
+ </where>
+ ORDER BY
+ RAND()
+ LIMIT #{num}
+ </select>
+
+ <resultMap id="exportDataMap" type="com.ycl.jxkg.domain.vo.admin.exam.QuestionExportData">
+ <result column="question_type" property="questionType"/>
+ <result column="title" property="title"/>
+ <result column="analyze" property="analyze"/>
+ <result column="content" property="content"/>
+ <result column="correct" property="answer"/>
+ <collection property="subjectList" column="id" ofType="string" select="selectSubjects"/>
+ </resultMap>
+
+ <select id="export" resultType="com.ycl.jxkg.domain.vo.admin.exam.ExamPaperImportVO">
+ SELECT
+ q.*,
+ s.NAME AS SUBJECT
+ FROM t_question q
+ LEFT JOIN t_subject s ON subject_id = s.id
+ ORDER BY q.id
+ </select>
+
</mapper>
--
Gitblit v1.8.0