130 lines
7.6 KiB
XML
130 lines
7.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="com.ddnai.system.mapper.psychology.PsyQuestionnaireMapper">
|
|
|
|
<resultMap type="com.ddnai.system.domain.psychology.PsyQuestionnaire" id="PsyQuestionnaireResult">
|
|
<result property="questionnaireId" column="questionnaire_id" />
|
|
<result property="questionnaireCode" column="questionnaire_code" />
|
|
<result property="questionnaireName" column="questionnaire_name" />
|
|
<result property="questionnaireType" column="questionnaire_type" />
|
|
<result property="paperType" column="paper_type" />
|
|
<result property="itemCount" column="item_count" />
|
|
<result property="totalScore" column="total_score" />
|
|
<result property="passScore" column="pass_score" />
|
|
<result property="estimatedTime" column="estimated_time" />
|
|
<result property="description" column="description" />
|
|
<result property="status" column="status" />
|
|
<result property="sortOrder" column="sort_order" />
|
|
<result property="createBy" column="create_by" />
|
|
<result property="createTime" column="create_time" />
|
|
<result property="updateBy" column="update_by" />
|
|
<result property="updateTime" column="update_time" />
|
|
<result property="remark" column="remark" />
|
|
</resultMap>
|
|
|
|
<sql id="selectQuestionnaireVo">
|
|
select q.questionnaire_id, q.questionnaire_code, q.questionnaire_name, q.questionnaire_type, q.paper_type,
|
|
COALESCE(COUNT(i.item_id), 0) as item_count, q.total_score, q.pass_score, q.estimated_time, q.description, q.status, q.sort_order,
|
|
q.create_by, q.create_time, q.update_by, q.update_time, q.remark
|
|
from psy_questionnaire q
|
|
left join psy_questionnaire_item i on q.questionnaire_id = i.questionnaire_id
|
|
</sql>
|
|
|
|
<select id="selectQuestionnaireById" parameterType="Long" resultMap="PsyQuestionnaireResult">
|
|
<include refid="selectQuestionnaireVo"/>
|
|
where q.questionnaire_id = #{questionnaireId}
|
|
group by q.questionnaire_id
|
|
</select>
|
|
|
|
<select id="selectQuestionnaireByCode" parameterType="String" resultMap="PsyQuestionnaireResult">
|
|
<include refid="selectQuestionnaireVo"/>
|
|
where q.questionnaire_code = #{questionnaireCode}
|
|
group by q.questionnaire_id
|
|
</select>
|
|
|
|
<select id="selectQuestionnaireList" parameterType="com.ddnai.system.domain.psychology.PsyQuestionnaire" resultMap="PsyQuestionnaireResult">
|
|
<include refid="selectQuestionnaireVo"/>
|
|
<where>
|
|
<if test="questionnaireCode != null and questionnaireCode != ''"> and q.questionnaire_code = #{questionnaireCode}</if>
|
|
<if test="questionnaireName != null and questionnaireName != ''"> and q.questionnaire_name like concat('%', #{questionnaireName}, '%')</if>
|
|
<if test="questionnaireType != null and questionnaireType != ''"> and q.questionnaire_type = #{questionnaireType}</if>
|
|
<if test="status != null and status != ''"> and q.status = #{status}</if>
|
|
</where>
|
|
group by q.questionnaire_id
|
|
order by q.sort_order, q.create_time desc
|
|
</select>
|
|
|
|
<insert id="insertQuestionnaire" parameterType="com.ddnai.system.domain.psychology.PsyQuestionnaire" useGeneratedKeys="true" keyProperty="questionnaireId">
|
|
insert into psy_questionnaire (
|
|
<if test="questionnaireCode != null and questionnaireCode != ''">questionnaire_code, </if>
|
|
<if test="questionnaireName != null and questionnaireName != ''">questionnaire_name, </if>
|
|
<if test="questionnaireType != null and questionnaireType != ''">questionnaire_type, </if>
|
|
<if test="paperType != null and paperType != ''">paper_type, </if>
|
|
<if test="itemCount != null">item_count, </if>
|
|
<if test="totalScore != null">total_score, </if>
|
|
<if test="passScore != null">pass_score, </if>
|
|
<if test="estimatedTime != null">estimated_time, </if>
|
|
<if test="description != null">description, </if>
|
|
<if test="status != null and status != ''">status, </if>
|
|
<if test="sortOrder != null">sort_order, </if>
|
|
<if test="createBy != null and createBy != ''">create_by, </if>
|
|
<if test="remark != null and remark != ''">remark, </if>
|
|
create_time
|
|
)values(
|
|
<if test="questionnaireCode != null and questionnaireCode != ''">#{questionnaireCode}, </if>
|
|
<if test="questionnaireName != null and questionnaireName != ''">#{questionnaireName}, </if>
|
|
<if test="questionnaireType != null and questionnaireType != ''">#{questionnaireType}, </if>
|
|
<if test="paperType != null and paperType != ''">#{paperType}, </if>
|
|
<if test="itemCount != null">#{itemCount}, </if>
|
|
<if test="totalScore != null">#{totalScore}, </if>
|
|
<if test="passScore != null">#{passScore}, </if>
|
|
<if test="estimatedTime != null">#{estimatedTime}, </if>
|
|
<if test="description != null">#{description}, </if>
|
|
<if test="status != null and status != ''">#{status}, </if>
|
|
<if test="sortOrder != null">#{sortOrder}, </if>
|
|
<if test="createBy != null and createBy != ''">#{createBy}, </if>
|
|
<if test="remark != null and remark != ''">#{remark}, </if>
|
|
sysdate()
|
|
)
|
|
</insert>
|
|
|
|
<update id="updateQuestionnaire" parameterType="com.ddnai.system.domain.psychology.PsyQuestionnaire">
|
|
update psy_questionnaire
|
|
<set>
|
|
<if test="questionnaireName != null and questionnaireName != ''">questionnaire_name = #{questionnaireName}, </if>
|
|
<if test="questionnaireType != null and questionnaireType != ''">questionnaire_type = #{questionnaireType}, </if>
|
|
<if test="paperType != null and paperType != ''">paper_type = #{paperType}, </if>
|
|
<if test="itemCount != null">item_count = #{itemCount}, </if>
|
|
<if test="totalScore != null">total_score = #{totalScore}, </if>
|
|
<if test="passScore != null">pass_score = #{passScore}, </if>
|
|
<if test="estimatedTime != null">estimated_time = #{estimatedTime}, </if>
|
|
<if test="description != null">description = #{description}, </if>
|
|
<if test="status != null and status != ''">status = #{status}, </if>
|
|
<if test="sortOrder != null">sort_order = #{sortOrder}, </if>
|
|
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy}, </if>
|
|
<if test="remark != null">remark = #{remark}, </if>
|
|
update_time = sysdate()
|
|
</set>
|
|
where questionnaire_id = #{questionnaireId}
|
|
</update>
|
|
|
|
<delete id="deleteQuestionnaireById" parameterType="Long">
|
|
delete from psy_questionnaire where questionnaire_id = #{questionnaireId}
|
|
</delete>
|
|
|
|
<delete id="deleteQuestionnaireByIds" parameterType="String">
|
|
delete from psy_questionnaire where questionnaire_id in
|
|
<foreach item="questionnaireId" collection="array" open="(" separator="," close=")">
|
|
#{questionnaireId}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<select id="checkQuestionnaireCodeUnique" parameterType="String" resultType="int">
|
|
select count(1) from psy_questionnaire where questionnaire_code = #{questionnaireCode}
|
|
</select>
|
|
|
|
</mapper>
|
|
|