86 lines
3.2 KiB
XML
86 lines
3.2 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="questionNumber" column="question_number"/>
|
|
<result property="content" column="content"/>
|
|
<result property="questionType" column="question_type"/>
|
|
<result property="workArea" column="work_area"/>
|
|
<result property="isRequired" column="is_required"/>
|
|
<result property="nextQuestionLogic" column="next_question_logic"/>
|
|
<result property="createdAt" column="created_at"/>
|
|
</resultMap>
|
|
|
|
<!-- 基础列 -->
|
|
<sql id="baseColumns">
|
|
id, question_number, content, question_type, work_area, is_required, next_question_logic, created_at
|
|
</sql>
|
|
|
|
<!-- 插入 -->
|
|
<insert id="insert" parameterType="ltd.qubit.survey.model.Question" useGeneratedKeys="true" keyProperty="id">
|
|
INSERT INTO questions (question_number, content, question_type, work_area, is_required, next_question_logic)
|
|
VALUES (#{questionNumber}, #{content}, #{questionType}, #{workArea}, #{isRequired}, #{nextQuestionLogic})
|
|
</insert>
|
|
|
|
<!-- 更新 -->
|
|
<update id="update" parameterType="ltd.qubit.survey.model.Question">
|
|
UPDATE questions
|
|
SET question_number = #{questionNumber},
|
|
content = #{content},
|
|
question_type = #{questionType},
|
|
work_area = #{workArea},
|
|
is_required = #{isRequired},
|
|
next_question_logic = #{nextQuestionLogic}
|
|
WHERE id = #{id}
|
|
</update>
|
|
|
|
<!-- 删除 -->
|
|
<delete id="deleteById" parameterType="long">
|
|
DELETE FROM questions WHERE id = #{id}
|
|
</delete>
|
|
|
|
<!-- 根据ID查询 -->
|
|
<select id="findById" parameterType="long" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM questions
|
|
WHERE id = #{id}
|
|
</select>
|
|
|
|
<!-- 查询所有 -->
|
|
<select id="findAll" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM questions
|
|
ORDER BY question_number
|
|
</select>
|
|
|
|
<!-- 根据问题序号查询 -->
|
|
<select id="findByQuestionNumber" parameterType="int" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM questions
|
|
WHERE question_number = #{questionNumber}
|
|
</select>
|
|
|
|
<!-- 根据工作领域查询 -->
|
|
<select id="findByWorkArea" parameterType="string" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM questions
|
|
WHERE work_area = #{workArea}
|
|
ORDER BY question_number
|
|
</select>
|
|
|
|
<!-- 查询通用问题 -->
|
|
<select id="findCommonQuestions" resultMap="questionMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM questions
|
|
WHERE work_area IS NULL
|
|
ORDER BY question_number
|
|
</select>
|
|
|
|
<!-- 获取下一个问题序号 -->
|
|
<select id="getNextQuestionNumber" resultType="int">
|
|
SELECT COALESCE(MAX(question_number) + 1, 1)
|
|
FROM questions
|
|
</select>
|
|
</mapper> |