<?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="cc.mrbird.febs.vip.mapper.MallVipBenefitsRecordMapper">
|
|
<select id="selectMemberBenefitsRecordInPage" resultType="cc.mrbird.febs.vip.entity.MallVipBenefitsRecord">
|
SELECT
|
mallMember.name memberName,
|
mallMember.phone memberPhone,
|
config.name levelName,
|
benefits.name benefitsName,
|
benefitsDetail.link_type,
|
case when benefitsDetail.link_type = 3 then coupon.name
|
when benefitsDetail.link_type = 2 then goods.goods_name
|
else '-'
|
end receiveName,
|
case when record.id is not null then 1
|
else 2 end hasReceive,
|
record.id,
|
record.receive_cnt,
|
record.receive_time,
|
record.receive_type,
|
record.status
|
FROM mall_member mallMember
|
inner join mall_vip_config config on mallMember.level = config.code
|
inner join mall_vip_config_benefits configBenefits on config.id = configBenefits.config_id
|
inner join mall_vip_benefits benefits on configBenefits.benefits_id = benefits.id and benefits.gain_type = 2 and benefits.type != 1
|
inner join mall_vip_benefits_details benefitsDetail on benefits.id=benefitsDetail.benefits_id and (benefitsDetail.link_type = 2 or benefitsDetail.link_type = 3)
|
left join mall_goods_coupon coupon on benefitsDetail.content = coupon.id
|
left join mall_goods goods on benefitsDetail.content = goods.ID
|
LEFT JOIN mall_vip_benefits_record record ON record.member_id = mallMember.ID and record.benefits_type = 2
|
<where>
|
1=1
|
<if test="record.memberPhone != null and record.memberPhone != ''">
|
and mallMember.phone = #{record.memberPhone}
|
</if>
|
<if test="record.status != null">
|
and record.status = #{record.status}
|
</if>
|
<if test="record.hasReceive != null and record.hasReceive == 1">
|
and record.id is not null
|
</if>
|
<if test="record.hasReceive != null and record.hasReceive == 2">
|
and record.id is null
|
</if>
|
<if test="record.birthday != null">
|
and date_format(mallMember.birthday, '%m-%d') = date_format(#{record.birthday}, '%m-%d')
|
</if>
|
<if test="record.birthdayStart != null">
|
and date_format(mallMember.birthday, '%Y-%m-%d') >= date_format(#{record.birthdayStart}, '%Y-%m-%d')
|
</if>
|
<if test="record.birthdayEnd != null">
|
and date_format(mallMember.birthday, '%Y-%m-%d') <= date_format(#{record.birthdayEnd}, '%Y-%m-%d')
|
</if>
|
<if test="record.receiveStartTime != null">
|
and date_format(mallMember.receiveTime, '%Y-%m-%d') >= date_format(#{record.receiveStartTime}, '%Y-%m-%d')
|
</if>
|
<if test="record.receiveEndTime != null">
|
and date_format(mallMember.receiveTime, '%Y-%m-%d') <= date_format(#{record.receiveEndTime}, '%Y-%m-%d')
|
</if>
|
</where>
|
</select>
|
|
</mapper>
|