93 lines
3.6 KiB
XML
93 lines
3.6 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.SurveyResponseDao">
|
|
<!-- 结果映射 -->
|
|
<resultMap id="responseMap" type="ltd.qubit.survey.model.SurveyResponse">
|
|
<id property="id" column="id"/>
|
|
<result property="userId" column="user_id"/>
|
|
<result property="questionId" column="question_id"/>
|
|
<result property="selectedOptions" column="selected_options" typeHandler="ltd.qubit.survey.common.mybatis.JsonTypeHandler"/>
|
|
<result property="textAnswer" column="text_answer"/>
|
|
<result property="createdAt" column="created_at"/>
|
|
</resultMap>
|
|
|
|
<!-- 基础列 -->
|
|
<sql id="baseColumns">
|
|
id, user_id, question_id, selected_options, text_answer, created_at
|
|
</sql>
|
|
|
|
<!-- 插入 -->
|
|
<insert id="insert" parameterType="ltd.qubit.survey.model.SurveyResponse" useGeneratedKeys="true" keyProperty="id">
|
|
INSERT INTO survey_responses (user_id, question_id, selected_options, text_answer)
|
|
VALUES (#{userId}, #{questionId}, #{selectedOptions,typeHandler=ltd.qubit.survey.common.mybatis.JsonTypeHandler}, #{textAnswer})
|
|
</insert>
|
|
|
|
<!-- 批量插入 -->
|
|
<insert id="batchInsert" parameterType="java.util.List">
|
|
INSERT INTO survey_responses (user_id, question_id, selected_options, text_answer)
|
|
VALUES
|
|
<foreach collection="list" item="item" separator=",">
|
|
(#{item.userId}, #{item.questionId},
|
|
#{item.selectedOptions,typeHandler=ltd.qubit.survey.common.mybatis.JsonTypeHandler},
|
|
#{item.textAnswer})
|
|
</foreach>
|
|
</insert>
|
|
|
|
<!-- 更新 -->
|
|
<update id="update" parameterType="ltd.qubit.survey.model.SurveyResponse">
|
|
UPDATE survey_responses
|
|
SET user_id = #{userId},
|
|
question_id = #{questionId},
|
|
selected_options = #{selectedOptions,typeHandler=ltd.qubit.survey.common.mybatis.JsonTypeHandler},
|
|
text_answer = #{textAnswer}
|
|
WHERE id = #{id}
|
|
</update>
|
|
|
|
<!-- 删除 -->
|
|
<delete id="deleteById" parameterType="long">
|
|
DELETE FROM survey_responses WHERE id = #{id}
|
|
</delete>
|
|
|
|
<!-- 根据用户ID删除 -->
|
|
<delete id="deleteByUserId" parameterType="long">
|
|
DELETE FROM survey_responses WHERE user_id = #{userId}
|
|
</delete>
|
|
|
|
<!-- 根据ID查询 -->
|
|
<select id="findById" parameterType="long" resultMap="responseMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM survey_responses
|
|
WHERE id = #{id}
|
|
</select>
|
|
|
|
<!-- 查询所有 -->
|
|
<select id="findAll" resultMap="responseMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM survey_responses
|
|
ORDER BY user_id, question_id
|
|
</select>
|
|
|
|
<!-- 根据用户ID查询 -->
|
|
<select id="findByUserId" parameterType="long" resultMap="responseMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM survey_responses
|
|
WHERE user_id = #{userId}
|
|
ORDER BY question_id
|
|
</select>
|
|
|
|
<!-- 根据问题ID查询 -->
|
|
<select id="findByQuestionId" parameterType="long" resultMap="responseMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM survey_responses
|
|
WHERE question_id = #{questionId}
|
|
ORDER BY user_id
|
|
</select>
|
|
|
|
<!-- 根据用户ID和问题ID查询 -->
|
|
<select id="findByUserIdAndQuestionId" resultMap="responseMap">
|
|
SELECT <include refid="baseColumns"/>
|
|
FROM survey_responses
|
|
WHERE user_id = #{userId}
|
|
AND question_id = #{questionId}
|
|
</select>
|
|
</mapper> |