From d470757bba19143fd3fc441365fcbb2362dfd0f0 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期六, 11 五月 2024 18:04:39 +0800 Subject: [PATCH] 个人练习 --- src/main/resources/mapper/QuestionMapper.xml | 542 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 280 insertions(+), 262 deletions(-) diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml index fe253d0..0764bb9 100644 --- a/src/main/resources/mapper/QuestionMapper.xml +++ b/src/main/resources/mapper/QuestionMapper.xml @@ -1,282 +1,300 @@ <?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.mindskip.xzs.repository.QuestionMapper"> - <resultMap id="BaseResultMap" type="com.mindskip.xzs.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, + <resultMap id="BaseResultMap" type="com.mindskip.xzs.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.mindskip.xzs.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.mindskip.xzs.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.mindskip.xzs.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.mindskip.xzs.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> + </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.mindskip.xzs.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.mindskip.xzs.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.mindskip.xzs.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.mindskip.xzs.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> + <select id="page" resultMap="BaseResultMap" + parameterType="com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM"> + SELECT + q.* + FROM t_question q + LEFT JOIN t_question_subject qs on q.id = qs.question_id + LEFT JOIN t_text_content t on q.info_text_content_id = t.id + <where> + and q.deleted=0 and qs.deleted = 0 + <if test="id != null "> + and q.id= #{id} + </if> + <if test="level != null "> + and q.grade_level= #{level} + </if> + <if test="subjectId != null "> + and qs.subject_id in + <foreach item="subjectId" collection="subjectId" open="(" separator="," + close=")"> + #{subjectId} + </foreach> + </if> + <if test="questionType != null "> + and q.question_type= #{questionType} + </if> + <if test="questionName != null and questionName != ''"> + and t.content->'$."titleContent"' LIKE concat('%',#{questionName},'%') + </if> + <if test="content != null"> + and q.info_text_content_id in (SELECT id FROM t_text_content WHERE content like + concat('%',#{content},'%') ) + </if> + </where> + group by q.id + </select> - <select id="page" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM"> - SELECT - q.* - FROM t_question q - LEFT JOIN t_question_subject qs on q.id = qs.question_id - LEFT JOIN t_text_content t on q.info_text_content_id = t.id - <where> - and q.deleted=0 and qs.deleted = 0 - <if test="id != null "> - and q.id= #{id} - </if> - <if test="level != null "> - and q.grade_level= #{level} - </if> - <if test="subjectId != null "> - and qs.subject_id in - <foreach item="subjectId" collection="subjectId" open="(" separator="," + <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=")"> - #{subjectId} + #{id} </foreach> - </if> - <if test="questionType != null "> - and q.question_type= #{questionType} - </if> - <if test="questionName != null and questionName != ''"> - and t.content->'$."titleContent"' LIKE concat('%',#{questionName},'%') - </if> - <if test="content != null"> - and q.info_text_content_id in (SELECT id FROM t_text_content WHERE content like concat('%',#{content},'%') ) - </if> - </where> - group by q.id - </select> + </select> + <select id="selectAllCount" resultType="java.lang.Integer"> + SELECT count(*) + from t_question + where deleted = 0 + </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="selectCountByDate" resultType="com.mindskip.xzs.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="getAll" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"/> + from t_question where deleted=0 + </select> - <select id="selectAllCount" resultType="java.lang.Integer"> - SELECT count(*) from t_question where deleted=0 - </select> + <select id="export" resultMap="exportMap"> + SELECT + 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 + <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> + </where> + </select> - <select id="selectCountByDate" resultType="com.mindskip.xzs.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="exportMap" type="com.mindskip.xzs.vo.QuestionImportVO"> + <result column="question_type" property="questionType"/> + <result column="title" property="title"/> + <result column="analyze" property="analyze"/> + <result column="score" property="score"/> + <result column="difficult" property="difficult"/> + <result column="content" property="questionContent"/> + <result column="score" property="score"/> + <result column="correct" property="correct"/> + <collection property="subjectList" column="id" ofType="string" select="selectSubjects"/> + </resultMap> - <select id="getAll" resultMap="BaseResultMap"> - SELECT <include refid="Base_Column_List"/> - from t_question where deleted=0 - </select> + <select id="selectSubjects" resultType="string"> + SELECT ts.name + FROM t_question_subject tqs + INNER JOIN t_subject ts + ON tqs.subject_id = ts.id AND tqs.question_id = #{id} AND tqs.deleted = 0 AND ts.deleted = 0 + </select> - <select id="export" resultMap="exportMap"> - SELECT - 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 - <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> - </where> - </select> - - <resultMap id="exportMap" type="com.mindskip.xzs.vo.QuestionImportVO"> - <result column="question_type" property="questionType" /> - <result column="title" property="title" /> - <result column="analyze" property="analyze" /> - <result column="score" property="score" /> - <result column="difficult" property="difficult" /> - <result column="content" property="questionContent" /> - <result column="score" property="score" /> - <result column="correct" property="correct" /> - <collection property="subjectList" column="id" ofType="string" select="selectSubjects"/> - </resultMap> - - <select id="selectSubjects" resultType="string"> - SELECT - ts.name - FROM - t_question_subject tqs - INNER JOIN t_subject ts ON tqs.subject_id = ts.id AND tqs.question_id = #{id} AND tqs.deleted = 0 AND ts.deleted = 0 - </select> + <select id="getVoByIds" resultType="com.mindskip.xzs.domain.vo.QuestionVO"> + SELECT + 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 + <foreach + collection="ids" open="(" separator="," close=")" item="id"> + #{id} + </foreach> + </select> </mapper> -- Gitblit v1.8.0