<?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.SysVipInfoDao">
|
|
<resultMap type="SysVipInfo" id="SysVipInfoMap">
|
<id property="id" column="ID"/>
|
<result property="vipNo" column="VIP_NO"/>
|
<result property="vipName" column="VIP_NAME"/>
|
<result property="phone" column="PHONE"/>
|
<result property="sex" column="SEX"/>
|
<result property="birthday1" column="BIRTHDAY1"/>
|
<result property="addr" column="ADDR"/>
|
<result property="constell" column="CONSTELL"/>
|
<result property="animalSign" column="ANIMAL_SIGN"/>
|
<result property="arrivalWay" column="ARRIVAL_WAY"/>
|
<result property="vipType" column="VIP_TYPE"/>
|
<result property="vipState" column="VIP_STATE"/>
|
<result property="pointAll" column="POINT_ALL"/>
|
<result property="commissionAll" column="COMMISSION_ALL"/>
|
<result property="inDate" column="IN_DATE"/>
|
<result property="remark" column="REMARK"/>
|
<result property="staffId" column="STAFF_ID"/>
|
<result property="shopId" column="SHOP_ID"/>
|
<result property="passWord" column="PASSWORD"/>
|
<result property="email" column="EMAIL"/>
|
<result property="beatuyId" column="BEATUY_ID"/>
|
<result property="createTime" column="CREATE_TIME"/>
|
<result property="levelId" column="LEVEL_ID"/>
|
<result property="uuid" column="UUID"/>
|
<result property="balance" column="BALANCE"/>
|
<result property="photo" column="photo"/>
|
<result property="openId" column="openid"/>
|
<result property="disease" column="disease"/>
|
<result property="zjm" column="zjm"/>
|
<result property="companyId" column="company_id"/>
|
<result property="province" column="province"/>
|
<result property="city" column="city"/>
|
<result property="area" column="area"/>
|
<result property="recommendId" column="recommend_id"/>
|
|
<result property="statu" column="statu"/>
|
<result property="birthdayType" column="birthdayType"/>
|
<result property="blood" column="blood"/>
|
<result property="sfCard" column="sfCard"/>
|
<result property="link" column="link"/>
|
<result property="marry" column="marry"/>
|
<result property="vocation" column="vocation"/>
|
<result property="handleTime" column="handle_time"/>
|
<result property="parentId" column="parent_id"/>
|
<result property="isDeal" column="is_deal"/>
|
<result property="createDistributionTime" column="create_distribution_time"/>
|
|
|
<!-- 扩展属性 -->
|
<result property="staffName" column="STAFF_NAME"/>
|
<result property="shopName" column="SHOP_NAME"/>
|
<association property="vipLevel" column="{id=LEVEL_ID}"
|
select="com.matrix.system.hive.dao.SysVipLevelDao.selectById"></association>
|
|
<collection property="beauticains" column="{vipId=ID}"
|
select="com.matrix.system.hive.dao.MyBeaticianDao.selectByVipId"></collection>
|
</resultMap>
|
|
<resultMap type="SysVipInfo" id="SysVipInfoMapSimple">
|
<id property="id" column="ID"/>
|
<result property="vipNo" column="VIP_NO"/>
|
<result property="vipName" column="VIP_NAME"/>
|
<result property="phone" column="PHONE"/>
|
<result property="sex" column="SEX"/>
|
<result property="birthday1" column="BIRTHDAY1"/>
|
<result property="addr" column="ADDR"/>
|
<result property="constell" column="CONSTELL"/>
|
<result property="animalSign" column="ANIMAL_SIGN"/>
|
<result property="arrivalWay" column="ARRIVAL_WAY"/>
|
<result property="vipType" column="VIP_TYPE"/>
|
<result property="vipState" column="VIP_STATE"/>
|
<result property="pointAll" column="POINT_ALL"/>
|
<result property="commissionAll" column="COMMISSION_ALL"/>
|
<result property="inDate" column="IN_DATE"/>
|
<result property="remark" column="REMARK"/>
|
<result property="staffId" column="STAFF_ID"/>
|
<result property="shopId" column="SHOP_ID"/>
|
<result property="passWord" column="PASSWORD"/>
|
<result property="email" column="EMAIL"/>
|
<result property="beatuyId" column="BEATUY_ID"/>
|
<result property="createTime" column="CREATE_TIME"/>
|
<result property="levelId" column="LEVEL_ID"/>
|
<result property="uuid" column="UUID"/>
|
<result property="balance" column="BALANCE"/>
|
<result property="zjm" column="zjm"/>
|
<result property="photo" column="photo"/>
|
<result property="statu" column="statu"/>
|
<result property="blood" column="blood"/>
|
<result property="sfCard" column="sfCard"/>
|
<result property="link" column="link"/>
|
<result property="marry" column="marry"/>
|
<result property="vocation" column="vocation"/>
|
<result property="openId" column="openid"/>
|
<result property="handleTime" column="handle_time"/>
|
<result property="parentId" column="parent_id"/>
|
<result property="isDeal" column="is_deal"/>
|
<result property="birthdayType" column="birthdayType"/>
|
<result property="createDistributionTime" column="create_distribution_time"/>
|
<result property="disease" column="disease"/>
|
<result property="companyId" column="company_id"/>
|
<!-- 扩展属性 -->
|
<result property="staffName" column="STAFF_NAME"/>
|
<result property="shopName" column="SHOP_NAME"/>
|
</resultMap>
|
|
<!-- 查询几天内过生日的会员 -->
|
<select id="selectByBirthday" resultMap="SysVipInfoMapSimple">
|
select
|
ID,VIP_NO,VIP_NAME,PHONE,SEX,BIRTHDAY1,disease,is_deal,
|
ADDR,CONSTELL,ANIMAL_SIGN,ARRIVAL_WAY,VIP_TYPE,VIP_STATE,POINT_ALL,
|
COMMISSION_ALL,IN_DATE,STAFF_ID,SHOP_ID,IS_DELETE,REMARK,PASSWORD,
|
EMAIL,CREATE_TIME,UUID,BALANCE,blood,sfCard,link,marry,vocation,handleTime from
|
sys_vip_info
|
WHERE company_id=#{companyId}
|
and (STAFF_ID = #{staffId} or BEATUY_ID = #{staffId})
|
AND datediff(date_add(concat(
|
date_format(BIRTHDAY1, "%Y"),
|
date_format(curdate(), "%m%d")
|
),INTERVAL #{day} DAY),BIRTHDAY1) BETWEEN 0 AND #{day}
|
OR
|
datediff(date_add(concat(
|
date_format(BIRTHDAY1, "%Y"),
|
date_format(curdate(), "%m%d")
|
),INTERVAL #{day} DAY),BIRTHDAY1) >=365
|
<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="selectByBirthdayCount" resultType="java.lang.Integer">
|
select count(*) from
|
sys_vip_info
|
WHERE
|
company_id=#{companyId}
|
AND (STAFF_ID = #{staffId} or BEATUY_ID = #{staffId})
|
AND datediff(date_add(concat(
|
date_format(BIRTHDAY1, "%Y"),
|
date_format(curdate(), "%m%d")
|
),INTERVAL #{day} DAY),BIRTHDAY1) BETWEEN 0 AND #{day}
|
OR
|
datediff(date_add(concat(
|
date_format(BIRTHDAY1, "%Y"),
|
date_format(curdate(), "%m%d")
|
),INTERVAL #{day} DAY),BIRTHDAY1) >=365;
|
</select>
|
|
<!-- 查询几天内存在跟进的会员 -->
|
<select id="selectByServiceRocord" resultMap="SysVipInfoMapSimple">
|
select a.* from
|
sys_vip_info a
|
LEFT JOIN service_record b ON a.ID
|
= b.vip_id
|
WHERE company_id=#{companyId}
|
and (a.STAFF_ID = #{staffId} or a.BEATUY_ID = #{staffId})
|
AND b.follow_time BETWEEN curdate()
|
AND
|
date_add(curdate(), INTERVAL #{day} DAY)
|
<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="selectByServiceRocordCount" resultType="java.lang.Integer">
|
select count(*) from
|
sys_vip_info a
|
LEFT JOIN service_record b ON a.ID
|
= b.vip_id
|
WHERE
|
company_id=#{companyId}
|
and
|
(a.STAFF_ID = #{staffId} or a.BEATUY_ID = #{staffId})
|
AND b.follow_time BETWEEN curdate()
|
AND
|
date_add(curdate(), INTERVAL #{day} DAY)
|
</select>
|
|
<!-- 查询几天内存在预约的会员 -->
|
<select id="selectByProjService" resultMap="SysVipInfoMapSimple">
|
select a.* FROM
|
sys_vip_info a
|
LEFT JOIN sys_proj_services b ON a.ID = b.VIP_ID
|
WHERE
|
company_id=#{companyId}
|
and
|
(a.STAFF_ID = #{staffId} or a.BEATUY_ID = #{staffId})
|
AND b.YY_TIME BETWEEN curdate()
|
AND date_add(curdate(), INTERVAL #{day} DAY)
|
AND (b.STATE = '预约成功待处理' or b.STATE = '待预约')
|
<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="selectByProjServiceCount" resultType="java.lang.Integer">
|
select count(*) FROM
|
sys_vip_info a
|
|
LEFT JOIN sys_proj_services b ON a.ID = b.VIP_ID
|
WHERE
|
company_id=#{companyId}
|
and
|
(a.STAFF_ID = #{staffId} or a.BEATUY_ID = #{staffId})
|
AND b.YY_TIME BETWEEN curdate()
|
AND date_add(curdate(), INTERVAL #{day} DAY)
|
AND (b.STATE = '预约成功待处理' or b.STATE = '待预约')
|
</select>
|
|
<!-- 插入方法 -->
|
<insert id="insert" parameterType="SysVipInfo" useGeneratedKeys="true"
|
keyProperty="id">
|
<selectKey resultType="Long" order="AFTER" keyProperty="id">
|
SELECT LAST_INSERT_ID() AS ID
|
</selectKey>
|
INSERT INTO sys_vip_info (
|
ID,
|
VIP_NO,
|
VIP_NAME,
|
PHONE,
|
SEX,
|
BIRTHDAY1,
|
ADDR,
|
CONSTELL,
|
ANIMAL_SIGN,
|
ARRIVAL_WAY,
|
VIP_TYPE,
|
VIP_STATE,
|
POINT_ALL,
|
COMMISSION_ALL,
|
IN_DATE,
|
STAFF_ID,
|
SHOP_ID,
|
IS_DELETE,
|
REMARK,
|
PASSWORD,
|
EMAIL,
|
CREATE_TIME,
|
UUID,
|
BALANCE,
|
photo,
|
LEVEL_ID,
|
openid,
|
BEATUY_ID,
|
blood,
|
sfCard,
|
link,
|
marry,
|
vocation,
|
parent_id,
|
create_distribution_time,
|
birthdayType,
|
disease,
|
is_deal,
|
zjm,
|
company_id,
|
province,
|
city,
|
area,
|
recommend_id
|
)
|
|
|
VALUES (
|
#{id},
|
#{vipNo},
|
#{vipName},
|
#{phone},
|
#{sex},
|
#{birthday1},
|
#{addr},
|
#{constell},
|
#{animalSign},
|
#{arrivalWay},
|
#{vipType},
|
#{vipState},
|
#{pointAll},
|
#{commissionAll},
|
#{inDate},
|
#{staffId},
|
#{shopId},
|
#{isDelete},
|
#{remark},
|
#{passWord},
|
#{email},
|
#{createTime},
|
#{uuid},
|
#{balance},
|
#{photo},
|
#{levelId},
|
#{openId},
|
#{beatuyId},
|
#{blood},
|
#{sfCard},
|
#{link},
|
#{marry},
|
#{vocation},
|
#{parentId},
|
#{createDistributionTime},
|
#{birthdayType},
|
#{disease},
|
#{isDeal},
|
#{zjm},
|
#{companyId},
|
#{province},
|
#{city},
|
#{area},
|
#{recommendId}
|
)
|
|
</insert>
|
|
<!-- 根据id更新 部分更新 -->
|
<update id="update">
|
UPDATE sys_vip_info
|
<set>
|
<if test="vipNo != null and vipNo !='' ">
|
VIP_NO = #{vipNo},
|
</if>
|
<if test="vipName != null and vipName !='' ">
|
VIP_NAME = #{vipName},
|
</if>
|
<if test="zjm != null and zjm !='' ">
|
zjm = #{zjm},
|
</if>
|
<if test="phone != null and phone !='' ">
|
PHONE = #{phone},
|
</if>
|
<if test="sex != null and sex !='' ">
|
SEX = #{sex},
|
</if>
|
<if test="birthday1 != null ">
|
BIRTHDAY1 = #{birthday1},
|
</if>
|
<if test="addr != null and addr !='' ">
|
ADDR = #{addr},
|
</if>
|
<if test="constell != null and constell !='' ">
|
CONSTELL = #{constell},
|
</if>
|
<if test="animalSign != null and animalSign !='' ">
|
ANIMAL_SIGN = #{animalSign},
|
</if>
|
<if test="arrivalWay != null and arrivalWay !='' ">
|
ARRIVAL_WAY = #{arrivalWay},
|
</if>
|
<if test="vipType != null and vipType !='' ">
|
VIP_TYPE = #{vipType},
|
</if>
|
<if test="vipState != null and vipState !='' ">
|
VIP_STATE = #{vipState},
|
</if>
|
<if test="pointAll != null or pointAll == 0 ">
|
POINT_ALL = #{pointAll},
|
</if>
|
<if test="commissionAll != null or commissionAll == 0 ">
|
COMMISSION_ALL = #{commissionAll},
|
</if>
|
<if test="inDate != null ">
|
IN_DATE = #{inDate},
|
</if>
|
<if test="remark != null and remark !='' ">
|
REMARK = #{remark},
|
</if>
|
<if test="staffId != null and staffId !='' ">
|
STAFF_ID = #{staffId},
|
</if>
|
<if test="shopId != null and shopId !='' ">
|
SHOP_ID = #{shopId},
|
</if>
|
<if test="isDelete != null and isDelete !='' ">
|
IS_DELETE = #{isDelete},
|
</if>
|
<if test="passWord != null and passWord !='' ">
|
PASSWORD = #{passWord},
|
</if>
|
<if test="email != null and email !='' ">
|
EMAIL = #{email},
|
</if>
|
<if test="uuid != null and uuid !='' ">
|
UUID = #{uuid},
|
</if>
|
<if test="balance != null or balance==0">
|
BALANCE = #{balance},
|
</if>
|
<if test="levelId != null ">
|
LEVEL_ID = #{levelId},
|
</if>
|
<if test="photo != null and photo !='' ">
|
photo = #{photo},
|
</if>
|
<if test="openId != null and openId !='' ">
|
openId = #{openId},
|
</if>
|
<if test="beatuyId != null and beatuyId !='' ">
|
BEATUY_ID = #{beatuyId},
|
</if>
|
<if test="blood != null and blood !='' ">
|
blood = #{blood},
|
</if>
|
<if test="sfCard != null and sfCard !='' ">
|
sfCard = #{sfCard},
|
</if>
|
<if test="link != null and link !='' ">
|
link = #{link},
|
</if>
|
<if test="marry != null and marry !='' ">
|
marry = #{marry},
|
</if>
|
<if test="vocation != null and vocation !='' ">
|
vocation = #{vocation},
|
</if>
|
<if test="handleTime != null ">
|
handle_time = #{handleTime},
|
</if>
|
<if test="statu != null and statu !='' ">
|
statu = #{statu},
|
</if>
|
|
<if test="parentId != null and parentId !='' ">
|
parent_id = #{parentId},
|
</if>
|
<if test="createDistributionTime != null ">
|
create_distribution_time = #{createDistributionTime},
|
</if>
|
<if test="birthdayType != null ">
|
birthdayType = #{birthdayType},
|
</if>
|
<if test="disease != null ">
|
disease = #{disease},
|
</if>
|
<if test="isDeal != null ">
|
is_deal = #{isDeal},
|
</if>
|
<if test="recommendId != null ">
|
recommend_id = #{recommendId},
|
</if>
|
<if test="province != null and province !='' ">
|
province = #{province},
|
</if>
|
<if test="city != null and city !='' ">
|
city = #{city},
|
</if>
|
<if test="area != null and area !='' ">
|
area = #{area},
|
</if>
|
|
|
</set>
|
WHERE ID=#{id}
|
</update>
|
<!-- 积分清空 -->
|
<update id="pointClose">
|
UPDATE sys_vip_info set POINT_ALL = 0
|
</update>
|
|
<!-- 批量删除 -->
|
<delete id="deleteByIds" parameterType="java.util.List">
|
delete from sys_vip_info where ID in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</delete>
|
|
<!-- 根据id删除 -->
|
<delete id="deleteById">
|
DELETE FROM sys_vip_info
|
where ID=#{id}
|
</delete>
|
|
|
|
<!-- 分页查询 -->
|
<select id="selectInPage" resultMap="SysVipInfoMapSimple">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
<include refid="where"></include>
|
<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="selectAll" resultMap="SysVipInfoMapSimple">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
<include refid="where"></include>
|
</select>
|
|
<!-- 查询总条数 -->
|
<select id="selectTotalRecord" resultType="java.lang.Integer">
|
select count(*)
|
<include refid="from"></include>
|
<include refid="where"></include>
|
</select>
|
|
|
<!-- 根据id查询 -->
|
<select id="selectById" resultMap="SysVipInfoMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
where a.ID=#{id}
|
</select>
|
|
<!-- 根据手机和密码查询 -->
|
<select id="selectVipByPhonePassWord" resultMap="SysVipInfoMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
where a.company_id=#{record.companyId} and a.PHONE =#{record.phone} and a.PASSWORD = #{record.passWord}
|
</select>
|
<!-- 判断是否为唯一 -->
|
<select id="selectTotalByField" resultType="java.lang.Integer">
|
select count(*) from
|
sys_vip_info where ${field} = #{value}
|
</select>
|
|
<!-- 根据对象查询 -->
|
<select id="findListByVo" resultMap="SysVipInfoMap">
|
select
|
DISTINCT a.ID,
|
a.VIP_NO,
|
a.VIP_NAME,
|
a.PHONE,
|
a.SEX,
|
a.BIRTHDAY1,
|
a.photo,
|
a.ADDR,
|
a.CONSTELL,
|
a.ANIMAL_SIGN,
|
a.ARRIVAL_WAY,
|
a.VIP_TYPE,
|
a.VIP_STATE,
|
a.POINT_ALL,
|
a.COMMISSION_ALL,
|
a.IN_DATE,
|
a.REMARK,
|
a.SHOP_ID,
|
a.IS_DELETE,
|
a.PASSWORD,
|
a.EMAIL,
|
a.STAFF_ID,
|
a.CREATE_TIME,
|
a.LEVEL_ID,
|
a.UUID,
|
a.openid,
|
a.BALANCE,
|
a.BEATUY_ID,
|
c.su_name as STAFF_NAME,
|
d.SHOP_NAME,
|
a.blood,
|
a.sfCard,
|
a.link,
|
a.marry,
|
a.vocation,
|
a.statu,
|
a.disease,
|
a.is_deal
|
from sys_vip_info a
|
left join sys_users c on c.su_id =a.STAFF_ID
|
left join sys_shop_info d ON d.ID=a.SHOP_ID
|
LEFT JOIN my_beatician e on e.vip_id = a.id
|
<include refid="whereVo"></include>
|
|
<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="findListByVoCount" resultType="java.lang.Integer">
|
select count(DISTINCT a.ID)
|
from sys_vip_info a
|
left join sys_users c on c.su_id =a.STAFF_ID
|
left join sys_shop_info d ON d.ID=a.SHOP_ID
|
LEFT JOIN my_beatician e on e.vip_id = a.id
|
<include refid="whereVo"></include>
|
</select>
|
|
|
<!-- 根据电话号码模糊查询 -->
|
<select id="selectUserByPhoto" resultMap="SysVipInfoMapSimple">
|
select ID,disease,is_deal,
|
ID,VIP_NO,VIP_NAME,PHONE,SEX,BIRTHDAY1,photo,
|
ADDR,CONSTELL,ANIMAL_SIGN,ARRIVAL_WAY,VIP_TYPE,VIP_STATE,POINT_ALL,
|
COMMISSION_ALL,IN_DATE,STAFF_ID,SHOP_ID,IS_DELETE,REMARK,PASSWORD,
|
EMAIL,CREATE_TIME,UUID,BALANCE
|
from sys_vip_info where
|
company_id=#{companyId}
|
and PHONE like concat('%',#{keyWord},'%') limit 0,10
|
|
</select>
|
|
<!-- 根据电话号码模糊查询 -->
|
<select id="selectUserByKey" resultMap="SysVipInfoMapSimple">
|
select ID,disease,is_deal,
|
ID,VIP_NO,VIP_NAME,PHONE,SEX,BIRTHDAY1,photo,
|
ADDR,CONSTELL,ANIMAL_SIGN,ARRIVAL_WAY,VIP_TYPE,VIP_STATE,POINT_ALL,
|
COMMISSION_ALL,IN_DATE,STAFF_ID,SHOP_ID,IS_DELETE,REMARK,PASSWORD,
|
EMAIL,CREATE_TIME,UUID,BALANCE,blood,sfCard,link,marry,vocation
|
from sys_vip_info
|
where
|
SHOP_ID=#{shopId}
|
and (
|
instr(PHONE,#{keyWord})
|
or instr(VIP_NAME ,#{keyWord})
|
or instr(zjm ,#{keyWord})
|
or instr(VIP_NO ,#{keyWord})
|
)
|
limit 0,15
|
</select>
|
|
|
<!-- 根据对象查询 -->
|
<select id="selectByModel" resultMap="SysVipInfoMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
<include refid="where"></include>
|
</select>
|
|
<select id="selectByModel1" resultMap="SysVipInfoMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
<include refid="where1"></include>
|
</select>
|
|
<select id="selectByVipNoOrTel" resultMap="SysVipInfoMap">
|
<include refid="select"></include>
|
<include refid="from"></include>
|
where 1=1
|
and
|
(a.VIP_NO =#{key} or
|
a.VIP_NAME =#{key} or
|
a.PHONE =#{key}) and a.shop_id=#{shopId}
|
</select>
|
|
<select id="getLevelIdByMoney" resultMap="SysVipInfoMap">
|
|
SELECT * from sys_vip_level where FUND_MIN <![CDATA[ <= ]]>
|
#{fundMin}
|
ORDER BY FUND_MIN DESC
|
</select>
|
|
<sql id="whereVo">
|
<where>
|
<if test="record!=null">
|
<if test="record.keyWord != null and record.keyWord !='' ">
|
and (a.VIP_NO like CONCAT('%',#{record.keyWord},'%') or
|
a.PHONE like CONCAT('%',#{record.keyWord},'%') or
|
a.VIP_NAME like
|
CONCAT('%',#{record.keyWord},'%') )
|
</if>
|
<if test="record.shopId != null and record.shopId !='' ">
|
and a.SHOP_ID = #{record.shopId}
|
</if>
|
<if test="record.jkgwId != null and record.jkgwId !='' ">
|
and a.STAFF_ID = #{record.jkgwId}
|
</if>
|
<if test="record.mlsId != null and record.mlsId !='' ">
|
and e.beauticain_id = #{record.mlsId}
|
</if>
|
<if test="record.levelId != null and record.levelId !='' ">
|
and a.LEVEL_ID = #{record.levelId}
|
</if>
|
<if test="record.vipState != null and record.vipState!='' ">
|
and a.VIP_STATE = #{record.vipState}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') ">
|
and a.company_id = #{record.companyId}
|
</if>
|
</if>
|
</where>
|
</sql>
|
|
<sql id="where">
|
where 1=1
|
<if test="record!=null">
|
<if test="record.id != null and record.id !='' ">
|
and a.ID = #{record.id}
|
</if>
|
<!-- 根据编号 -->
|
<if test="record.vipNo != null and record.vipNo !='' ">
|
and a.VIP_NO like CONCAT('%',#{record.vipNo},'%')
|
</if>
|
<!-- 根据姓名 -->
|
<if test="record.vipName != null and record.vipName !='' ">
|
and (instr(a.VIP_NAME ,#{record.vipName}) or instr(a.zjm ,#{record.vipName}))
|
</if>
|
<if test="record.phone != null and record.phone !='' ">
|
and a.PHONE like CONCAT('%',#{record.phone},'%')
|
</if>
|
<if test="record.sex != null and record.sex !='' ">
|
and a.SEX = #{record.sex}
|
</if>
|
<if test="record.birthday1 != null ">
|
and a.BIRTHDAY1 = #{record.birthday1}
|
</if>
|
<if test="record.addr != null and record.addr !='' ">
|
and a.ADDR = #{record.addr}
|
</if>
|
<if test="record.constell != null and record.constell !='' ">
|
and a.CONSTELL = #{record.constell}
|
</if>
|
<if test="record.animalSign != null and record.animalSign !='' ">
|
and a.ANIMAL_SIGN = #{record.animalSign}
|
</if>
|
<if test="record.arrivalWay != null and record.arrivalWay !='' ">
|
and a.ARRIVAL_WAY = #{record.arrivalWay}
|
</if>
|
<if test="record.vipType != null and record.vipType !='' ">
|
and a.VIP_TYPE = #{record.vipType}
|
</if>
|
<if test="record.vipState != null and record.vipState !='' ">
|
and a.VIP_STATE = #{record.vipState}
|
</if>
|
<if test="record.pointAll != null or record.pointAll==0 ">
|
and a.POINT_ALL = #{record.pointAll}
|
</if>
|
<if test="record.commissionAll != null and record.commissionAll !='' ">
|
and a.COMMISSION_ALL = #{record.commissionAll}
|
</if>
|
<if test="record.inDate != null ">
|
and a.IN_DATE like CONCAT('%',#{record.inDate},'%')
|
</if>
|
<if test="record.remark != null and record.remark !='' ">
|
and a.REMARK like CONCAT('%',#{record.remark},'%')
|
</if>
|
<if test="record.staffId != null and record.staffId !='' ">
|
and a.STAFF_ID = #{record.staffId}
|
</if>
|
<if test="record.shopId != null and record.shopId !='' ">
|
and a.SHOP_ID = #{record.shopId}
|
</if>
|
<if test="record.isDelete != null and record.isDelete !='' ">
|
and a.IS_DELETE = #{record.isDelete}
|
</if>
|
<if test="record.passWord != null and record.passWord !='' ">
|
and a.PASSWORD = #{record.passWord}
|
</if>
|
<if test="record.email != null and record.email !='' ">
|
and a.EMAIL = #{record.email}
|
</if>
|
<if test="record.uuid != null and record.uuid !='' ">
|
and a.UUID = #{record.uuid}
|
</if>
|
<if test="record.balance != null and record.balance !='' ">
|
and a.BALANCE = #{record.balance}
|
</if>
|
<if test="record.openId != null and record.openId !='' ">
|
and a.openid = #{record.openId}
|
</if>
|
<if test="record.blood != null and record.blood !='' ">
|
and a.blood = #{record.blood}
|
</if>
|
<if test="record.sfCard != null and record.sfCard !='' ">
|
and a.sfCard = #{record.sfCard}
|
</if>
|
<if test="record.link != null and record.link !='' ">
|
and a.link = #{record.link}
|
</if>
|
<if test="record.marry != null and record.marry !='' ">
|
and a.marry = #{record.marry}
|
</if>
|
<if test="record.vocation != null and record.vocation !='' ">
|
and a.vocation = #{record.vocation}
|
</if>
|
<if test="record.statu != null and record.statu !='' ">
|
and a.statu = #{record.statu}
|
</if>
|
<if test="record.isDeal != null and record.isDeal !='' ">
|
and a.is_deal = #{record.isDeal}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') ">
|
and a.company_id = #{record.companyId}
|
</if>
|
</if>
|
</sql>
|
|
|
<sql id="where1">
|
where 1=1
|
<if test="record!=null">
|
<if test="record.id != null and record.id !='' ">
|
and a.ID = #{record.id}
|
</if>
|
<!-- 根据编号 -->
|
<if test="record.vipNo != null and record.vipNo !='' ">
|
and a.VIP_NO = #{record.vipNo}
|
</if>
|
<!-- 根据姓名 -->
|
<if test="record.vipName != null and record.vipName !='' ">
|
and (instr(a.VIP_NAME ,#{record.vipName}) or instr(a.zjm ,#{record.vipName}))
|
</if>
|
|
<if test="record.phone != null and record.phone !='' ">
|
and a.PHONE =#{record.phone}
|
</if>
|
|
<if test="record.sex != null and record.sex !='' ">
|
and a.SEX = #{record.sex}
|
</if>
|
<if test="record.birthday1 != null ">
|
and a.BIRTHDAY1 = #{record.birthday1}
|
</if>
|
<if test="record.addr != null and record.addr !='' ">
|
and a.ADDR = #{record.addr}
|
</if>
|
<if test="record.constell != null and record.constell !='' ">
|
and a.CONSTELL = #{record.constell}
|
</if>
|
<if test="record.animalSign != null and record.animalSign !='' ">
|
and a.ANIMAL_SIGN = #{record.animalSign}
|
</if>
|
<if test="record.arrivalWay != null and record.arrivalWay !='' ">
|
and a.ARRIVAL_WAY = #{record.arrivalWay}
|
</if>
|
<if test="record.vipType != null and record.vipType !='' ">
|
and a.VIP_TYPE = #{record.vipType}
|
</if>
|
<if test="record.vipState != null and record.vipState !='' ">
|
and a.VIP_STATE = #{record.vipState}
|
</if>
|
<if test="(record.companyId!=null and record.companyId!='') ">
|
and a.company_id = #{record.companyId}
|
</if>
|
<if test="record.pointAll != null or record.pointAll==0 ">
|
and a.POINT_ALL = #{record.pointAll}
|
</if>
|
<if test="record.commissionAll != null and record.commissionAll !='' ">
|
and a.COMMISSION_ALL = #{record.commissionAll}
|
</if>
|
<if test="record.inDate != null ">
|
and a.IN_DATE like CONCAT('%',#{record.inDate},'%')
|
</if>
|
<if test="record.remark != null and record.remark !='' ">
|
and a.REMARK like CONCAT('%',#{record.remark},'%')
|
</if>
|
<if test="record.staffId != null and record.staffId !='' ">
|
and a.STAFF_ID = #{record.staffId}
|
</if>
|
<if test="record.shopId != null and record.shopId !='' ">
|
and a.SHOP_ID = #{record.shopId}
|
</if>
|
<if test="record.isDelete != null and record.isDelete !='' ">
|
and a.IS_DELETE = #{record.isDelete}
|
</if>
|
<if test="record.passWord != null and record.passWord !='' ">
|
and a.PASSWORD = #{record.passWord}
|
</if>
|
<if test="record.email != null and record.email !='' ">
|
and a.EMAIL = #{record.email}
|
</if>
|
<if test="record.uuid != null and record.uuid !='' ">
|
and a.UUID = #{record.uuid}
|
</if>
|
<if test="record.balance != null and record.balance !='' ">
|
and a.BALANCE = #{record.balance}
|
</if>
|
<if test="record.statu != null and record.statu !='' ">
|
and a.statu = #{record.statu}
|
</if>
|
<if test="record.blood != null and record.blood !='' ">
|
and a.blood = #{record.blood}
|
</if>
|
<if test="record.sfCard != null and record.sfCard !='' ">
|
and a.sfCard = #{record.sfCard}
|
</if>
|
<if test="record.link != null and record.link !='' ">
|
and a.link = #{record.link}
|
</if>
|
<if test="record.marry != null and record.marry !='' ">
|
and a.marry = #{record.marry}
|
</if>
|
<if test="record.vocation != null and record.vocation !='' ">
|
and a.vocation = #{record.vocation}
|
</if>
|
|
<if test="record.isDeal != null and record.isDeal !='' ">
|
and a.is_deal = #{record.isDeal}
|
</if>
|
</if>
|
</sql>
|
|
<sql id="select">
|
select
|
a.ID,
|
a.VIP_NO,
|
a.VIP_NAME,
|
a.PHONE,
|
a.SEX,
|
a.BIRTHDAY1,
|
a.photo,
|
a.ADDR,
|
a.CONSTELL,
|
a.ANIMAL_SIGN,
|
a.ARRIVAL_WAY,
|
a.VIP_TYPE,
|
a.VIP_STATE,
|
a.POINT_ALL,
|
a.COMMISSION_ALL,
|
a.IN_DATE,
|
a.REMARK,
|
a.SHOP_ID,
|
a.IS_DELETE,
|
a.EMAIL,
|
a.STAFF_ID,
|
a.CREATE_TIME,
|
a.LEVEL_ID,
|
a.UUID,
|
a.BALANCE,
|
a.BEATUY_ID,
|
a.PASSWORD,
|
c.su_name as STAFF_NAME,
|
d.SHOP_NAME,
|
a.blood,
|
a.sfCard,
|
a.link,
|
a.marry,
|
a.vocation,
|
a.handle_time,
|
a.statu,
|
a.openid,
|
a.parent_id,
|
a.create_distribution_time,
|
a.birthdayType,
|
a.disease,
|
a.is_deal,
|
a.province,
|
a.city,
|
a.area,
|
a.recommend_id
|
</sql>
|
<sql id="from">
|
from sys_vip_info a
|
left join sys_users c on c.su_id =a.STAFF_ID
|
left join sys_shop_info d ON d.ID=a.SHOP_ID
|
|
</sql>
|
|
<select id="automaticUpdate">
|
call vipInfoUpdate();
|
</select>
|
|
<!-- 所有分销商分页查询 -->
|
<select id="selectAllInPage" resultMap="SysVipInfoMapSimple">
|
select
|
g.*,
|
h.vip_name as name
|
from
|
(select b.* from sys_vip_info b where b.parent_id in
|
|
(select a.id from sys_vip_info a
|
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and a.parent_id = #{record.parentId}
|
</if>
|
) )g LEFT JOIN sys_vip_info h on g.parent_id = h.id
|
|
UNION
|
|
select
|
d.*,
|
f.vip_name as name
|
from sys_vip_info d
|
LEFT JOIN sys_vip_info f on d.parent_id = f.id
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and d.parent_id = #{record.parentId}
|
</if>
|
<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="selectAllTotalRecord" resultType="java.lang.Integer">
|
select count(*)
|
from
|
(select
|
g.*,
|
h.vip_name as name
|
from
|
(select b.* from sys_vip_info b where b.parent_id in
|
|
(select a.id from sys_vip_info a
|
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and a.parent_id = #{record.parentId}
|
</if>
|
) )g LEFT JOIN sys_vip_info h on g.parent_id = h.id
|
|
UNION
|
|
select
|
d.*,
|
f.vip_name as name
|
from sys_vip_info d
|
LEFT JOIN sys_vip_info f on d.parent_id = f.id
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and d.parent_id = #{record.parentId}
|
</if>)k
|
</select>
|
|
<!-- 一级分销商分页查询 -->
|
<select id="selectFristInPage" resultMap="SysVipInfoMapSimple">
|
select
|
d.*,
|
f.vip_name as name
|
from sys_vip_info d
|
LEFT JOIN sys_vip_info f on d.parent_id = f.id
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and d.parent_id = #{record.parentId}
|
</if>
|
<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="selectFristTotalRecord" resultType="java.lang.Integer">
|
select
|
count(*)
|
from sys_vip_info d
|
LEFT JOIN sys_vip_info f on d.parent_id = f.id
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and d.parent_id = #{record.parentId}
|
</if>
|
</select>
|
|
<!-- 二级分销商分页查询 -->
|
<select id="selectSecondInPage" resultMap="SysVipInfoMapSimple">
|
select
|
g.*,
|
h.vip_name as name
|
from
|
(select b.* from sys_vip_info b where b.parent_id in
|
|
(select a.id from sys_vip_info a
|
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and a.parent_id = #{record.parentId}
|
</if>
|
) )g LEFT JOIN sys_vip_info h on g.parent_id = h.id
|
<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="selectSecondTotalRecord" resultType="java.lang.Integer">
|
select
|
count(*)
|
from
|
(select b.* from sys_vip_info b where b.parent_id in
|
|
(select a.id from sys_vip_info a
|
|
where 1=1
|
<if test="record.parentId != null and record.parentId !='' ">
|
and a.parent_id = #{record.parentId}
|
</if>
|
) )g LEFT JOIN sys_vip_info h on g.parent_id = h.id
|
|
</select>
|
|
<select id="selectByPhone" resultMap="SysVipInfoMapSimple">
|
|
select * from sys_vip_info where PHONE = #{phone}
|
</select>
|
|
|
<select id="selectVipTelphoneByIds" resultType="java.lang.String">
|
select phone from sys_vip_info
|
where phone is not null and id in
|
<foreach collection="list" index="index" item="item" open="("
|
separator="," close=")">
|
#{item}
|
</foreach>
|
</select>
|
|
<select id="selectAllVipPhone" resultType="java.lang.String">
|
select phone from sys_vip_info
|
where
|
company_id=#{companyId}
|
and phone is not null
|
|
</select>
|
|
<select id="selectVipPhoneWithShop" resultType="java.lang.String">
|
select phone from sys_vip_info
|
where phone is not null and shop_id=#{shopId}
|
</select>
|
|
<select id="selectOldUserByTelphone" resultMap="SysVipInfoMap">
|
select * from sys_vip_info where phone=#{telphone} and is_deal=1
|
</select>
|
|
|
<insert id="batchInsert" parameterType="java.util.List">
|
INSERT INTO sys_vip_info
|
(ID,
|
VIP_NO,
|
VIP_NAME,
|
PHONE,
|
SEX,
|
BIRTHDAY1,
|
ADDR,
|
CONSTELL,
|
ANIMAL_SIGN,
|
ARRIVAL_WAY,
|
VIP_TYPE,
|
VIP_STATE,
|
POINT_ALL,
|
COMMISSION_ALL,
|
IN_DATE,
|
STAFF_ID,
|
SHOP_ID,
|
IS_DELETE,
|
REMARK,
|
PASSWORD,
|
EMAIL,
|
CREATE_TIME,
|
UUID,
|
BALANCE,
|
photo,
|
LEVEL_ID,
|
openid,
|
BEATUY_ID,
|
blood,
|
sfCard,
|
link,
|
marry,
|
vocation,
|
parent_id,
|
create_distribution_time,
|
birthdayType,
|
disease,
|
is_deal
|
)
|
VALUES
|
<foreach collection="list" item="item" index="index" separator=",">(
|
#{item.id},
|
#{item.vipNo},
|
#{item.vipName},
|
#{item.phone},
|
#{item.sex},
|
#{item.birthday1},
|
#{item.addr},
|
#{item.constell},
|
#{item.animalSign},
|
#{item.arrivalWay},
|
#{item.vipType},
|
#{item.vipState},
|
#{item.pointAll},
|
#{item.commissionAll},
|
#{item.inDate},
|
#{item.staffId},
|
#{item.shopId},
|
#{item.isDelete},
|
#{item.remark},
|
#{item.passWord},
|
#{item.email},
|
#{item.createTime},
|
#{item.uuid},
|
#{item.balance},
|
#{item.photo},
|
#{item.levelId},
|
#{item.openId},
|
#{item.beatuyId},
|
#{item.blood},
|
#{item.sfCard},
|
#{item.link},
|
#{item.marry},
|
#{item.vocation},
|
#{item.parentId},
|
#{item.createDistributionTime},
|
#{item.birthdayType},
|
#{item.disease},
|
#{item.isDeal}
|
)</foreach>
|
</insert>
|
|
<select id="selectVipInfoByVipNo" resultMap="SysVipInfoMapSimple">
|
select * from sys_vip_info where company_id=#{companyId} and vip_no=#{vipNo}
|
</select>
|
|
<select id="selectVipAddressBookByList" resultType="com.matrix.system.app.vo.VipInfoListVo">
|
select
|
a.ID id,
|
a.VIP_NAME vipName,
|
a.PHONE phone,
|
a.photo photo,
|
b.arriveCnt arriveCnt,
|
g.shop_short_name shopName
|
from sys_vip_info a
|
left join (
|
select x.vip_id, count(1) arriveCnt from (
|
select vip_id, date_format(datatime, '%Y-%m-%d')
|
from achieve_new
|
where 1=1
|
<!-- 本月到店次数 -->
|
<if test="record.sort == 'monthArrived'">
|
and date_format(curdate(), '%Y-%m') = date_format(datatime, '%Y-%m')
|
</if>
|
<!-- 本年到店次数 -->
|
<if test="record.sort == 'yearArrived'">
|
and date_format(curdate(), '%Y') = date_format(datatime, '%Y')
|
</if>
|
group by date_format(datatime, '%Y-%m-%d'), vip_id
|
) x group by x.vip_id
|
) b on a.ID=b.vip_id
|
<!-- 本月消费 -->
|
<if test="record.sort == 'used'">
|
left join (
|
select y.vip_id, sum(IFNULL(card_cash, 0) + IFNULL(proj_cash,0) + IFNULL(goods_cash, 0)) used from achieve_new y where date_format(datatime,'%Y-%m') = date_format(curdate(), '%Y-%m') group by y.vip_id
|
) c on a.id=c.vip_id
|
</if>
|
<!-- 本月消耗 -->
|
<if test="record.sort == 'consume'">
|
left join (
|
select z.vip_id, SUM(IFNULL(free_consume, 0) + IFNULL(his_consume, 0) + IFNULL(consume, 0)) consume from achieve_new z where date_format(datatime,'%Y-%m') = date_format(curdate(), '%Y-%m') group by z.vip_id
|
) d on a.ID = d.vip_id
|
</if>
|
<!-- 上次到店时间 -->
|
<if test="record.sort == 'arriveTime'">
|
left join (
|
select m.vip_id, MAX(datatime) arriveTime from achieve_new m group by m.vip_id
|
) e on a.ID=e.vip_id
|
</if>
|
<!-- 会员级别排序 -->
|
<if test="record.sort == 'vipLevel'">
|
left join (
|
select n.VIP_LEVEL vipLevel, n.ID from sys_vip_level n
|
) f on a.LEVEL_ID = f.ID
|
</if>
|
left join sys_shop_info g on a.shop_id = g.id
|
left join sys_vip_level h on a.level_id=h.id
|
where 1=1
|
<if test="record.queryKey != null and record.queryKey != ''">
|
and (instr(PHONE,#{record.queryKey})
|
or instr(VIP_NAME ,#{record.queryKey})
|
or instr(zjm ,#{record.queryKey})
|
or instr(VIP_NO ,#{record.queryKey}))
|
</if>
|
<if test="record.shopId != null">
|
and a.shop_id=#{record.shopId}
|
</if>
|
<if test='record.birthType=="1"'>
|
and a.BIRTHDAY1 between curdate() and DATE_ADD(CURDATE(), INTERVAL 3 DAY)
|
</if>
|
<if test='record.birthType=="2"'>
|
and date_format(a.BIRTHDAY1, '%Y-%m') = date_format(CURDATE(), '%Y-%m')
|
</if>
|
<if test='record.birthType=="3"'>
|
and PERIOD_DIFF(date_format(now() ,'%Y-%m') , date_format(a.BIRTHDAY1, '%Y-%m')) =1
|
</if>
|
<if test="record.vipType != null">
|
and a.level_id=#{record.vipType}
|
</if>
|
<if test="record.other != null and record.other!=''">
|
and a.is_deal=#{record.other}
|
</if>
|
|
<if test="record.sort == 'monthArrived' or record.sort == 'yearArrived'">
|
order by arriveCnt ${record.order}
|
</if>
|
<if test="record.sort != 'monthArrived' and record.sort != 'yearArrived'">
|
order by ${record.sort} ${record.order}
|
</if>
|
</select>
|
|
<select id="selectVipInfoById" resultType="com.matrix.system.app.vo.VipInfoVo">
|
select
|
a.ID id,
|
a.photo photo,
|
a.PHONE phone,
|
a.VIP_NAME vipName,
|
a.VIP_NO vipNo,
|
c.LEVEL_NAME vipLevel,
|
a.POINT_ALL integral,
|
e.shop_short_name shopName,
|
sum(IFNULL(b.gift_money, 0) + IFNULL(b.real_money, 0)) totalBalance,
|
sum(IFNULL(b.gift_money, 0)) giftBalance,
|
sum(IFNULL(d.goods_cash, 0) + IFNULL(d.proj_cash, 0) + IFNULL(d.card_cash, 0)) totalShopping
|
from sys_vip_info a
|
left join money_card_use b on a.ID = b.vip_id and b.status='有效'
|
left join sys_vip_level c on a.LEVEL_ID = c.ID
|
left join achieve_new d on a.ID = d.vip_id
|
left join sys_shop_info e on a.SHOP_ID=e.ID
|
where a.ID=#{id}
|
</select>
|
</mapper>
|
|