<?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.beauty.followup.dao.SysFollowupDao" >
|
<!-- 定义SysFollowup 的复杂关联map -->
|
<resultMap type="com.matrix.beauty.followup.entry.SysFollowup" id="SysFollowupMap">
|
<id property="id" column="id" />
|
<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="staffId" column="staff_id" />
|
<result property="vipId" column="vip_id" />
|
<result property="orderId" column="order_id" />
|
<result property="serviceId" column="service_id" />
|
<result property="shopId" column="shop_id" />
|
<result property="companyId" column="company_id" />
|
<result property="nextNotifyTime" column="next_notify_time" />
|
<result property="content" column="content" />
|
<result property="visible" column="visible" />
|
<result property="orderAbstract" column="order_abstract" />
|
<result property="zans" column="zans" />
|
|
<result property="staffPhoto" column="staffPhoto" />
|
<result property="staffName" column="staffName" />
|
<result property="vipName" column="vipName" />
|
|
<collection property="albums" column="{sourceId=id}" select="com.matrix.system.hive.dao.SysVipAlbumDao.selectBySourceId" />
|
|
<collection property="followupComments" column="{follId=id}" select="com.matrix.system.hive.dao.SysFollowupCommentDao.selectByfollId" ></collection>
|
|
<collection property="zanUsers" column="{zans=zans}" select="selectUserByZaqns" ></collection>
|
|
|
</resultMap>
|
|
<select id="selectUserByZaqns" resultMap="com.matrix.system.common.dao.SysUsersDao.SysUsersMap" >
|
select su_id,su_name from sys_users where FIND_IN_SET(su_id,#{zans})
|
</select>
|
|
<!-- 定义SysFollowup 的简单map ,本map不添加其他的关联属性 -->
|
<resultMap type="com.matrix.beauty.followup.entry.SysFollowup" id="SysFollowupSimpleMap">
|
<id property="id" column="id" />
|
<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="staffId" column="staff_id" />
|
<result property="vipId" column="vip_id" />
|
<result property="orderId" column="order_id" />
|
<result property="serviceId" column="service_id" />
|
<result property="shopId" column="shop_id" />
|
<result property="companyId" column="company_id" />
|
<result property="nextNotifyTime" column="next_notify_time" />
|
<result property="content" column="content" />
|
<result property="visible" column="visible" />
|
<result property="orderAbstract" column="order_abstract" />
|
<result property="zans" column="zans" />
|
</resultMap>
|
|
<!-- 字段sql -->
|
<sql id="columns">
|
create_by,
|
create_time,
|
update_by,
|
update_time,
|
id,
|
staff_id,
|
vip_id,
|
order_id,
|
service_id,
|
shop_id,
|
company_id,
|
next_notify_time,
|
content,
|
visible,
|
order_abstract,
|
zans
|
</sql>
|
|
<!-- 属性sql -->
|
<sql id="propertys">
|
#{item.createBy},
|
now(),
|
#{item.updateBy},
|
now(),
|
#{item.id},
|
#{item.staffId},
|
#{item.vipId},
|
#{item.orderId},
|
#{item.serviceId},
|
#{item.shopId},
|
#{item.companyId},
|
#{item.nextNotifyTime},
|
#{item.content},
|
#{item.visible},
|
#{item.orderAbstract},
|
#{item.zans}
|
</sql>
|
|
<!-- where sql -->
|
<sql id="where_sql">
|
|
<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.staffId!=null and record.staffId!='') or (record.staffId!='' and record.staffId==0) ">
|
and staff_id = #{record.staffId}
|
</if>
|
<if test="(record.vipId!=null and record.vipId!='') or (record.vipId!='' and record.vipId==0) ">
|
and vip_id = #{record.vipId}
|
</if>
|
<if test="(record.orderId!=null and record.orderId!='') or (record.orderId!='' and record.orderId==0) ">
|
and order_id = #{record.orderId}
|
</if>
|
<if test="(record.serviceId!=null and record.serviceId!='') or (record.serviceId!='' and record.serviceId==0) ">
|
and service_id = #{record.serviceId}
|
</if>
|
<if test="(record.shopId!=null and record.shopId!='') or (record.shopId!='' and record.shopId==0) ">
|
and shop_id = #{record.shopId}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') or (record.companyId!='' and record.companyId==0) ">
|
and company_id = #{record.companyId}
|
</if>
|
<if test="(record.nextNotifyTime!=null and record.nextNotifyTime!='') or (record.nextNotifyTime!='' and record.nextNotifyTime==0) ">
|
and next_notify_time = #{record.nextNotifyTime}
|
</if>
|
<if test="(record.content!=null and record.content!='') or (record.content!='' and record.content==0) ">
|
and content = #{record.content}
|
</if>
|
<if test="(record.visible!=null and record.visible!='') or (record.visible!='' and record.visible==0) ">
|
and visible = #{record.visible}
|
</if>
|
<if test="(record.orderAbstract!=null and record.orderAbstract!='') or (record.orderAbstract!='' and record.orderAbstract==0) ">
|
and order_abstract = #{record.orderAbstract}
|
</if>
|
<if test="(record.zans!=null and record.zans!='') or (record.zans!='' and record.zans==0) ">
|
and zans = #{record.zans}
|
</if>
|
</if>
|
|
</sql>
|
|
<!-- 插入方法 -->
|
<insert id="insert" parameterType="com.matrix.beauty.followup.entry.SysFollowup"
|
useGeneratedKeys="true" keyProperty="item.id">
|
INSERT INTO sys_followup (
|
<include refid="columns"></include>
|
)
|
VALUES (
|
<include refid="propertys"></include>
|
)
|
</insert>
|
|
|
|
<!-- 批量插入 -->
|
<insert id="batchInsert" parameterType="java.util.List">
|
INSERT INTO sys_followup (
|
<include refid="columns"></include>
|
)
|
VALUES
|
<foreach collection="list" item="item" index="index" separator=",">(
|
<include refid="propertys"></include>
|
)</foreach>
|
</insert>
|
|
|
|
|
|
<!-- 根据Map更新 部分更新 -->
|
<update id="updateByMap" parameterType="java.util.HashMap" >
|
UPDATE sys_followup
|
<set>
|
<if test="_parameter.containsKey('staffId')">
|
staff_id = #{staffId},
|
</if>
|
<if test="_parameter.containsKey('vipId')">
|
vip_id = #{vipId},
|
</if>
|
<if test="_parameter.containsKey('orderId')">
|
order_id = #{orderId},
|
</if>
|
<if test="_parameter.containsKey('serviceId')">
|
service_id = #{serviceId},
|
</if>
|
<if test="_parameter.containsKey('shopId')">
|
shop_id = #{shopId},
|
</if>
|
<if test="_parameter.containsKey('companyId')">
|
company_id = #{companyId},
|
</if>
|
<if test="_parameter.containsKey('nextNotifyTime')">
|
next_notify_time = #{nextNotifyTime},
|
</if>
|
<if test="_parameter.containsKey('content')">
|
content = #{content},
|
</if>
|
<if test="_parameter.containsKey('visible')">
|
visible = #{visible},
|
</if>
|
<if test="_parameter.containsKey('orderAbstract')">
|
order_abstract = #{orderAbstract},
|
</if>
|
<if test="_parameter.containsKey('zans')">
|
zans = #{zans},
|
</if>
|
</set>
|
WHERE id=#{id}
|
</update>
|
|
|
<!-- 根据对象更新 部分更新 -->
|
<update id="updateByModel" parameterType="Integer">
|
UPDATE sys_followup
|
<set>
|
<if test="record.staffId != null ">
|
staff_id = #{record.staffId},
|
</if>
|
<if test="record.vipId != null ">
|
vip_id = #{record.vipId},
|
</if>
|
<if test="record.orderId != null ">
|
order_id = #{record.orderId},
|
</if>
|
<if test="record.serviceId != null ">
|
service_id = #{record.serviceId},
|
</if>
|
<if test="record.shopId != null ">
|
shop_id = #{record.shopId},
|
</if>
|
<if test="record.companyId != null ">
|
company_id = #{record.companyId},
|
</if>
|
<if test="record.nextNotifyTime != null ">
|
next_notify_time = #{record.nextNotifyTime},
|
</if>
|
<if test="record.content != null and record.content != '' ">
|
content = #{record.content},
|
</if>
|
<if test="record.visible != null ">
|
visible = #{record.visible},
|
</if>
|
<if test="record.orderAbstract != null and record.orderAbstract != '' ">
|
order_abstract = #{record.orderAbstract},
|
</if>
|
<if test="record.zans != null and record.zans != '' ">
|
zans = #{record.zans},
|
</if>
|
</set>
|
WHERE id=#{record.id}
|
</update>
|
|
<!-- 更新点赞人数 -->
|
<update id="updateZan">
|
update sys_followup set zans=#{zans} where id=#{id}
|
</update>
|
|
<!-- 批量删除 -->
|
<delete id="deleteByIds" parameterType="java.util.List">
|
delete from sys_followup where id in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</delete>
|
|
<!-- 根据id删除-->
|
<delete id="deleteById" parameterType="Integer">
|
DELETE FROM sys_followup
|
where id=#{id}
|
</delete>
|
|
<!-- 根据对象删除-->
|
<delete id="deleteByModel" parameterType="com.matrix.beauty.followup.entry.SysFollowup">
|
DELETE FROM sys_followup
|
<where>
|
<include refid="where_sql" ></include>
|
</where>
|
</delete>
|
|
|
|
<!-- 分页查询 -->
|
<select id="selectInPage" resultMap="SysFollowupMap">
|
select
|
<include refid="columns" ></include>
|
from sys_followup
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
<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" parameterType="long" resultType="java.lang.Integer">
|
select count(*)
|
from sys_followup
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
|
<!-- 根据id查询-->
|
<select id="selectById" resultMap="SysFollowupMap">
|
select
|
<include refid="columns" ></include>
|
from sys_followup
|
where id=#{id}
|
</select>
|
|
|
<!-- 根据id 锁表查询-->
|
<select id="selectForUpdate" resultMap="SysFollowupMap">
|
select
|
<include refid="columns" ></include>
|
from sys_followup
|
where id=#{id}
|
for update
|
</select>
|
|
|
|
<!-- 根据对象查询-->
|
<select id="selectByModel" resultMap="SysFollowupMap">
|
select
|
<include refid="columns" ></include>
|
from sys_followup
|
<where>
|
<include refid="where_sql"></include>
|
</where>
|
</select>
|
|
|
<select id="selectByAppDto" resultMap="SysFollowupMap">
|
select a.*,
|
b.su_photo as staffPhoto,
|
b.su_name as staffName,
|
c.vip_name as vipName
|
from sys_followup a
|
left join sys_users b on a.staff_id= b.su_id
|
left join sys_vip_info c on a.vip_id=c.id
|
<where>
|
and a.company_id=#{companyId}
|
|
<if test="shopId != null ">
|
and a.shop_id=#{shopId}
|
</if>
|
<if test="queryType == 1 ">
|
and (visible=1 or ( visible!=1 and a.staff_id=#{selfStaff}))
|
</if>
|
<if test="queryType == 2 ">
|
and a.staff_id=#{selfStaff}
|
</if>
|
<if test="queryType == 3 ">
|
and( visible=1 and a.staff_id!=#{selfStaff})
|
</if>
|
|
<if test="startTime != null ">
|
and a.create_time <![CDATA[ >= ]]> #{startTime}
|
</if>
|
<if test="endTime != null ">
|
and a.create_time <![CDATA[ <= ]]> #{endTime}
|
</if>
|
|
<if test="vipIds!=null and vipIds.size()!=0">
|
and a.vip_id in
|
<foreach collection="vipIds" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
|
<if test="staffIds!=null and staffIds.size()!=0">
|
and a.staff_id in
|
<foreach collection="staffIds" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
|
|
</where>
|
|
|
order by a.create_time desc
|
|
|
limit ${offset},${limit}
|
</select>
|
|
<select id="findVipFollowuByPage" resultMap="SysFollowupMap">
|
select a.*,
|
b.su_photo as staffPhoto,
|
b.su_name as staffName,
|
c.vip_name as vipName
|
from sys_followup a
|
left join sys_users b on a.staff_id= b.su_id
|
left join sys_vip_info c on a.vip_id=c.id
|
<where>
|
and a.company_id=#{companyId}
|
and (visible=1 or ( visible!=1 and a.staff_id=#{selfStaff}))
|
<if test="vipId!=null">
|
and a.vip_id = #{vipId}
|
</if>
|
</where>
|
order by a.create_time desc
|
limit ${offset},${limit}
|
</select>
|
|
</mapper>
|