From cd59ededbf05a0ae73b8f4944fbf40a1fb01d28a Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期一, 11 十一月 2024 18:03:43 +0800 Subject: [PATCH] 错题详情 --- src/main/resources/mapper/QuestionMapper.xml | 346 +++++++++++++++++++++------------------------------------ 1 files changed, 129 insertions(+), 217 deletions(-) diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml index 3de994e..69b64af 100644 --- a/src/main/resources/mapper/QuestionMapper.xml +++ b/src/main/resources/mapper/QuestionMapper.xml @@ -1,231 +1,143 @@ <?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.repository.QuestionMapper"> - <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.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="create_user" jdbcType="INTEGER" property="createUser" /> - <result column="status" jdbcType="INTEGER" property="status" /> - <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> - <result column="deleted" jdbcType="BIT" property="deleted" /> - </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 - </sql> - <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> - select - <include refid="Base_Column_List" /> - from t_question - where id = #{id,jdbcType=INTEGER} - </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> - delete from t_question - where id = #{id,jdbcType=INTEGER} - </delete> - <insert id="insert" parameterType="com.ycl.jxkg.domain.Question" useGeneratedKeys="true" keyProperty="id"> - insert into t_question (id, question_type, subject_id, - score, grade_level, difficult, - correct, info_text_content_id, create_user, - status, create_time, deleted - ) - values (#{id,jdbcType=INTEGER}, #{questionType,jdbcType=INTEGER}, #{subjectId,jdbcType=INTEGER}, - #{score,jdbcType=INTEGER}, #{gradeLevel,jdbcType=INTEGER}, #{difficult,jdbcType=INTEGER}, - #{correct,jdbcType=VARCHAR}, #{infoTextContentId,jdbcType=INTEGER}, #{createUser,jdbcType=INTEGER}, - #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{deleted,jdbcType=BIT} - ) - </insert> - <insert id="insertSelective" parameterType="com.ycl.jxkg.domain.Question" useGeneratedKeys="true" keyProperty="id"> - insert into t_question - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null"> - id, - </if> - <if test="questionType != null"> - question_type, - </if> - <if test="subjectId != null"> - subject_id, - </if> - <if test="score != null"> - score, - </if> - <if test="gradeLevel != null"> - grade_level, - </if> - <if test="difficult != null"> - difficult, - </if> - <if test="correct != null"> - correct, - </if> - <if test="infoTextContentId != null"> - info_text_content_id, - </if> - <if test="createUser != null"> - create_user, - </if> - <if test="status != null"> - status, - </if> - <if test="createTime != null"> - create_time, - </if> - <if test="deleted != null"> - deleted, - </if> - </trim> - <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="id != null"> - #{id,jdbcType=INTEGER}, - </if> - <if test="questionType != null"> - #{questionType,jdbcType=INTEGER}, - </if> - <if test="subjectId != null"> - #{subjectId,jdbcType=INTEGER}, - </if> - <if test="score != null"> - #{score,jdbcType=INTEGER}, - </if> - <if test="gradeLevel != null"> - #{gradeLevel,jdbcType=INTEGER}, - </if> - <if test="difficult != null"> - #{difficult,jdbcType=INTEGER}, - </if> - <if test="correct != null"> - #{correct,jdbcType=VARCHAR}, - </if> - <if test="infoTextContentId != null"> - #{infoTextContentId,jdbcType=INTEGER}, - </if> - <if test="createUser != null"> - #{createUser,jdbcType=INTEGER}, - </if> - <if test="status != null"> - #{status,jdbcType=INTEGER}, - </if> - <if test="createTime != null"> - #{createTime,jdbcType=TIMESTAMP}, - </if> - <if test="deleted != null"> - #{deleted,jdbcType=BIT}, - </if> - </trim> - </insert> - <update id="updateByPrimaryKeySelective" parameterType="com.ycl.jxkg.domain.Question"> - update t_question - <set> - <if test="questionType != null"> - question_type = #{questionType,jdbcType=INTEGER}, - </if> - <if test="subjectId != null"> - subject_id = #{subjectId,jdbcType=INTEGER}, - </if> - <if test="score != null"> - score = #{score,jdbcType=INTEGER}, - </if> - <if test="gradeLevel != null"> - grade_level = #{gradeLevel,jdbcType=INTEGER}, - </if> - <if test="difficult != null"> - difficult = #{difficult,jdbcType=INTEGER}, - </if> - <if test="correct != null"> - correct = #{correct,jdbcType=VARCHAR}, - </if> - <if test="infoTextContentId != null"> - info_text_content_id = #{infoTextContentId,jdbcType=INTEGER}, - </if> - <if test="createUser != null"> - create_user = #{createUser,jdbcType=INTEGER}, - </if> - <if test="status != null"> - status = #{status,jdbcType=INTEGER}, - </if> - <if test="createTime != null"> - create_time = #{createTime,jdbcType=TIMESTAMP}, - </if> - <if test="deleted != null"> - deleted = #{deleted,jdbcType=BIT}, - </if> - </set> - where id = #{id,jdbcType=INTEGER} - </update> - <update id="updateByPrimaryKey" parameterType="com.ycl.jxkg.domain.Question"> - update t_question - set question_type = #{questionType,jdbcType=INTEGER}, - subject_id = #{subjectId,jdbcType=INTEGER}, - score = #{score,jdbcType=INTEGER}, - grade_level = #{gradeLevel,jdbcType=INTEGER}, - difficult = #{difficult,jdbcType=INTEGER}, - correct = #{correct,jdbcType=VARCHAR}, - info_text_content_id = #{infoTextContentId,jdbcType=INTEGER}, - create_user = #{createUser,jdbcType=INTEGER}, - status = #{status,jdbcType=INTEGER}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - deleted = #{deleted,jdbcType=BIT} - where id = #{id,jdbcType=INTEGER} - </update> +<mapper namespace="com.ycl.jxkg.mapper.QuestionMapper"> + + <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="difficult" jdbcType="INTEGER" property="difficult"/> + <result column="correct" jdbcType="VARCHAR" property="correct"/> + <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"/> + <result column="deleted" jdbcType="BIT" property="deleted"/> + </resultMap> + <sql id="Base_Column_List"> + id + , question_type, subject_id, difficult, correct, content, create_user, status, create_time, deleted + </sql> + + <select id="page" resultType="com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO" + parameterType="com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO"> + SELECT + 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 tq.deleted = 0 + <if test="id != null"> + and tq.id = #{id} + </if> + <if test="status != null"> + and tq.status = #{status} + </if> + <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 questionType.size() > 0"> + and tq.question_type in + <foreach collection="questionType" item="item" separator="," open="(" close=")">#{item}</foreach> + </if> + <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> + <select id="selectByIds" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"/> + FROM t_question where id in + <foreach item="id" collection="ids" open="(" separator="," + close=")"> + #{id} + </foreach> + </select> - <select id="page" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.viewmodel.admin.question.QuestionPageRequestVM"> - SELECT - <include refid="Base_Column_List"/> - FROM t_question - <where> - and deleted=0 - <if test="id != null "> - and id= #{id} - </if> - <if test="level != null "> - and grade_level= #{level} - </if> - <if test="subjectId != null "> - and subject_id= #{subjectId} - </if> - <if test="questionType != null "> - and question_type= #{questionType} - </if> - <if test="content != null"> - and info_text_content_id in (SELECT id FROM t_text_content WHERE content like concat('%',#{content},'%') ) - </if> - </where> - </select> + <select id="selectAllCount" resultType="java.lang.Integer"> + SELECT count(*) + from t_question + where deleted = 0 + </select> + <select id="selectCountByDate" resultType="com.ycl.jxkg.domain.other.KeyValue"> + SELECT create_time as name, COUNT(create_time) as value + from + ( + SELECT DATE_FORMAT(create_time, '%Y-%m-%d') as create_time from t_question + WHERE deleted=0 and create_time between #{startTime} and #{endTime} + ) a + 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="selectByIds" resultMap="BaseResultMap" > - SELECT - <include refid="Base_Column_List"/> - FROM t_question where id in - <foreach item="id" collection="ids" open="(" separator="," - close=")"> - #{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="selectAllCount" resultType="java.lang.Integer"> - SELECT count(*) from t_question where deleted=0 - </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> - <select id="selectCountByDate" resultType="com.ycl.jxkg.domain.other.KeyValue"> - SELECT create_time as name,COUNT(create_time) as value from - ( - SELECT DATE_FORMAT(create_time,'%Y-%m-%d') as create_time from t_question - WHERE deleted=0 and create_time between #{startTime} and #{endTime} - ) a - GROUP BY create_time - </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