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