fix
Helius
2024-04-09 0adc7b8f73cdb45992f868bf1e3a97a070e43a9e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?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') &lt;= 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') &lt;= date_format(#{record.receiveEndTime}, '%Y-%m-%d')
            </if>
        </where>
    </select>
 
</mapper>