<?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.matrix.system.hive.dao.QuestionDao">
|
<!-- 定义Question 的复杂关联map -->
|
<resultMap type="Question" id="QuestionMap">
|
<id property="id" column="id" />
|
<result property="category" column="category" />
|
<result property="type" column="type" />
|
<result property="question" column="question" />
|
<result property="orderField" column="order_field" />
|
<result property="companyId" column="company_id"/>
|
|
<!-- 会员答案 -->
|
<association property="vipAnswer" column="vipAnswer" javaType="VipAnswer">
|
<id property="id" column="vipAnswerId" />
|
<result property="answerId" column="answer_id" />
|
<result property="quesionId" column="quesion_id" />
|
<result property="answerText" column="answer_text" />
|
<result property="vipId" column="vip_id" />
|
</association>
|
|
<collection property="answers" column="{record.questionId=id}" select="com.matrix.system.hive.dao.AnswerDao.selectByModel"/>
|
|
</resultMap>
|
|
|
<!-- 定义Question 的简单map ,本map不添加其他的关联属性 -->
|
<resultMap type="Question" id="QuestionSimpleMap">
|
<id property="id" column="id" />
|
<result property="category" column="category" />
|
<result property="type" column="type" />
|
<result property="question" column="question" />
|
<result property="orderField" column="order_field" />
|
</resultMap>
|
<!-- 根据问卷题目分类及会员id查询所有的题目及对应答案 -->
|
<select id="selectVipAnswerAllByModel" resultMap="QuestionMap">
|
SELECT
|
a.id ,
|
a.category,
|
a.type ,
|
a.question,
|
|
b.id vipAnswerId,
|
b.answer_id answer_id,
|
b.quesion_id quesion_id,
|
b.answer_text answer_text,
|
b.vip_id vip_id
|
FROM
|
question a
|
LEFT JOIN vip_answer b ON a.id = b.quesion_id and b.vip_id=#{id}
|
WHERE
|
a.company_id=#{companyId}
|
and category=#{type}
|
|
ORDER BY order_field DESC
|
</select>
|
|
|
<!-- 插入方法 -->
|
<insert id="insert" parameterType="Question"
|
useGeneratedKeys="true" keyProperty="id">
|
INSERT INTO question (
|
id,
|
category,
|
type,
|
question,
|
order_field,
|
company_id
|
)
|
VALUES (
|
#{id},
|
#{category},
|
#{type},
|
#{question},
|
#{orderField},
|
#{companyId}
|
)
|
</insert>
|
|
|
|
<!-- 批量插入 -->
|
<insert id="batchInsert" parameterType="java.util.List">
|
INSERT INTO question (
|
id,
|
category,
|
type,
|
question,
|
order_field,
|
company_id
|
)
|
VALUES
|
<foreach collection="list" item="item" index="index" separator=",">(
|
#{item.id},
|
#{item.category},
|
#{item.type},
|
#{item.question},
|
#{item.orderField},
|
#{item.companyId}
|
)</foreach>
|
</insert>
|
|
|
|
|
|
<!-- 根据Map更新 部分更新 -->
|
<update id="updateByMap" parameterType="java.util.HashMap" >
|
UPDATE question
|
<set>
|
<if test="_parameter.containsKey('category')">
|
category = #{category},
|
</if>
|
<if test="_parameter.containsKey('type')">
|
type = #{type},
|
</if>
|
<if test="_parameter.containsKey('question')">
|
question = #{question},
|
</if>
|
<if test="_parameter.containsKey('orderField')">
|
order_field = #{orderField},
|
</if>
|
</set>
|
WHERE id=#{id}
|
</update>
|
|
|
|
<!-- 根据对象更新 部分更新 -->
|
<update id="updateByModel" parameterType="Integer">
|
UPDATE question
|
<set>
|
<if test="(category!=null and category!='') or (category!='' and category==0)">
|
category = #{category},
|
</if>
|
<if test="(type!=null and type!='') or (type!='' and type==0)">
|
type = #{type},
|
</if>
|
<if test="(question!=null and question!='') or (question!='' and question==0)">
|
question = #{question},
|
</if>
|
<if test="(orderField!=null and orderField!='') or (orderField!='' and orderField==0)">
|
order_field = #{orderField},
|
</if>
|
</set>
|
WHERE id=#{id}
|
</update>
|
|
|
<!-- 批量删除 -->
|
<delete id="deleteByIds" parameterType="java.util.List">
|
delete from question where id in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</delete>
|
|
<!-- 根据id删除-->
|
<delete id="deleteById" parameterType="Integer">
|
DELETE FROM question
|
where id=#{id}
|
</delete>
|
|
<!-- 根据对象删除-->
|
<delete id="deleteByModel" parameterType="Integer">
|
DELETE FROM question
|
where 1=1
|
<if test="record!=null">
|
<if test="(record.id!=null and record.id!='') or (record.id!='' and record.id==0)">
|
and id = #{record.id}
|
</if>
|
<if test="(record.category!=null and record.category!='') or (record.category!='' and record.category==0)">
|
and category = #{record.category}
|
</if>
|
<if test="(record.type!=null and record.type!='') or (record.type!='' and record.type==0)">
|
and type = #{record.type}
|
</if>
|
<if test="(record.question!=null and record.question!='') or (record.question!='' and record.question==0)">
|
and question = #{record.question}
|
</if>
|
<if test="(record.orderField!=null and record.orderField!='') or (record.orderField!='' and record.orderField==0)">
|
and order_field = #{record.orderField}
|
</if>
|
</if>
|
</delete>
|
|
|
|
<!-- 分页查询 -->
|
<select id="selectInPage" resultMap="QuestionMap">
|
select
|
id,
|
category,
|
type,
|
question,
|
order_field,
|
company_id
|
from question
|
where 1=1
|
<if test="record!=null">
|
<if test="(record.id!=null and record.id!='') or (record.id!='' and record.id==0)">
|
and id = #{record.id}
|
</if>
|
<if test="(record.category!=null and record.category!='') or (record.category!='' and record.category==0)">
|
and category = #{record.category}
|
</if>
|
<if test="(record.type!=null and record.type!='') or (record.type!='' and record.type==0)">
|
and type = #{record.type}
|
</if>
|
<if test="(record.question!=null and record.question!='') or (record.question!='' and record.question==0)">
|
and question = #{record.question}
|
</if>
|
<if test="(record.orderField!=null and record.orderField!='') or (record.orderField!='' and record.orderField==0)">
|
and order_field = #{record.orderField}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') or (record.companyId!='' and record.companyId==0)">
|
and company_id = #{record.companyId}
|
</if>
|
</if>
|
order by order_field desc
|
<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
|
|
<!-- <if test="pageVo.sort !=null and pageVo.order !=null">
|
order by
|
${pageVo.sort} ${pageVo.order}
|
</if> -->
|
<if test="pageVo.offset >=0 and pageVo.limit >0">
|
limit
|
#{pageVo.offset},#{pageVo.limit}
|
</if>
|
</if>
|
</select>
|
|
<!-- 查询总条数 -->
|
<select id="selectTotalRecord" resultType="java.lang.Integer">
|
select count(*)
|
from question
|
where 1=1
|
<if test="record!=null">
|
<if test="(record.id!=null and record.id!='') or (record.id!='' and record.id==0)">
|
and id = #{record.id}
|
</if>
|
<if test="(record.category!=null and record.category!='') or (record.category!='' and record.category==0)">
|
and category = #{record.category}
|
</if>
|
<if test="(record.type!=null and record.type!='') or (record.type!='' and record.type==0)">
|
and type = #{record.type}
|
</if>
|
<if test="(record.question!=null and record.question!='') or (record.question!='' and record.question==0)">
|
and question = #{record.question}
|
</if>
|
<if test="(record.orderField!=null and record.orderField!='') or (record.orderField!='' and record.orderField==0)">
|
and order_field = #{record.orderField}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') or (record.companyId!='' and record.companyId==0)">
|
and company_id = #{record.companyId}
|
</if>
|
</if>
|
</select>
|
|
<!-- 根据id查询-->
|
<select id="selectById" resultMap="QuestionMap">
|
select
|
id,
|
category,
|
type,
|
question,
|
order_field,
|
company_id
|
from question
|
where id=#{id}
|
</select>
|
|
|
<!-- 根据id 锁表查询-->
|
<select id="selectForUpdate" resultMap="QuestionMap">
|
select
|
id,
|
category,
|
type,
|
question,
|
order_field
|
from question
|
where id=#{id}
|
for update
|
</select>
|
|
|
|
<!-- 根据对象查询-->
|
<select id="selectByModel" resultMap="QuestionMap">
|
select
|
id,
|
category,
|
type,
|
question,
|
order_field
|
from question
|
where 1=1
|
<if test="record!=null">
|
<if test="(record.id!=null and record.id!='') or (record.id!='' and record.id==0)">
|
and id = #{record.id}
|
</if>
|
<if test="(record.category!=null and record.category!='') or (record.category!='' and record.category==0)">
|
and category = #{record.category}
|
</if>
|
<if test="(record.type!=null and record.type!='') or (record.type!='' and record.type==0)">
|
and type = #{record.type}
|
</if>
|
<if test="(record.question!=null and record.question!='') or (record.question!='' and record.question==0)">
|
and question = #{record.question}
|
</if>
|
<if test="(record.orderField!=null and record.orderField!='') or (record.orderField!='' and record.orderField==0)">
|
and order_field = #{record.orderField}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') or (record.companyId!='' and record.companyId==0)">
|
and company_id = #{record.companyId}
|
</if>
|
</if>
|
</select>
|
</mapper>
|