79 lines
2.9 KiB
XML
79 lines
2.9 KiB
XML
<?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="ltd.qubit.survey.dao.QuestionDao">
|
|
<!-- 结果映射 -->
|
|
<resultMap id="questionMap" type="ltd.qubit.survey.model.Question">
|
|
<id property="id" column="id"/>
|
|
<result property="number" column="number"/>
|
|
<result property="content" column="content"/>
|
|
<result property="type" column="type"/>
|
|
<result property="isRequired" column="is_required"/>
|
|
<result property="next" column="next" typeHandler="ltd.qubit.survey.common.mybatis.JsonTypeHandler"/>
|
|
<result property="isLast" column="is_last"/>
|
|
<result property="createdAt" column="created_at"/>
|
|
</resultMap>
|
|
|
|
<!-- 基础列 -->
|
|
<sql id="baseColumns">
|
|
`id`, `number`, `content`, `type`, `is_required`, `next`, `is_last`, `created_at`
|
|
</sql>
|
|
|
|
<!-- 插入 -->
|
|
<insert id="insert" parameterType="ltd.qubit.survey.model.Question" useGeneratedKeys="true" keyProperty="id">
|
|
INSERT INTO `question` (`number`, `content`, `type`, `is_required`, `next`, `is_last`)
|
|
VALUES (#{number}, #{content}, #{type}, #{isRequired},
|
|
#{next,typeHandler=ltd.qubit.survey.common.mybatis.JsonTypeHandler},
|
|
#{isLast})
|
|
</insert>
|
|
|
|
<!-- 更新 -->
|
|
<update id="update" parameterType="ltd.qubit.survey.model.Question">
|
|
UPDATE `question`
|
|
SET `number` = #{number},
|
|
`content` = #{content},
|
|
`type` = #{type},
|
|
`is_required` = #{isRequired},
|
|
`next` = #{next,typeHandler=ltd.qubit.survey.common.mybatis.JsonTypeHandler},
|
|
`is_last` = #{isLast}
|
|
WHERE `id` = #{id}
|
|
</update>
|
|
|
|
<!-- 删除 -->
|
|
<delete id="deleteById" parameterType="long">
|
|
DELETE FROM `question` WHERE `id` = #{id}
|
|
</delete>
|
|
|
|
<!-- 根据ID查询 -->
|
|
<select id="findById" parameterType="long" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM `question`
|
|
WHERE `id` = #{id}
|
|
</select>
|
|
|
|
<!-- 查询所有 -->
|
|
<select id="findAll" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM `question`
|
|
ORDER BY `number`
|
|
</select>
|
|
|
|
<!-- 根据问题序号查询 -->
|
|
<select id="findByQuestionNumber" parameterType="int" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM `question`
|
|
WHERE `number` = #{number}
|
|
</select>
|
|
|
|
<!-- 查询通用问题 -->
|
|
<select id="findCommonQuestions" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM `question`
|
|
ORDER BY `number`
|
|
</select>
|
|
|
|
<!-- 获取下一个问题序号 -->
|
|
<select id="getNextQuestionNumber" resultType="int">
|
|
SELECT COALESCE(MAX(`number`) + 1, 1)
|
|
FROM `question`
|
|
</select>
|
|
</mapper> |