Helius
2022-09-23 7c6f033b8754b07bf5c75ae8745a982d76f9abb4
src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -3,7 +3,12 @@
<mapper namespace="cc.mrbird.febs.mall.mapper.MallMemberMapper">
    <select id="selectMallMemberListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember">
        SELECT * FROM mall_member m
        SELECT m.*,a.name referrerName,IFNULL(c.balance,0) balance,IFNULL(c.score,0) score,IFNULL(c.prize_score,0) prizeScore,IFNULL(c.commission,0) commission
        ,d.description levelName
        FROM mall_member m
        left join mall_member a on m.referrer_id = a.invite_id
        LEFT JOIN mall_member_wallet c on c.member_id = m.id
        LEFT JOIN data_dictionary_custom d on d.code = m.level and type='AGENT_LEVEL'
        <where>
            <if test="record != null" >
                <if test="record.name!=null and record.name!=''">
@@ -13,6 +18,7 @@
                    and (
                        m.phone like concat('%',  #{record.account},'%')
                        or m.email like concat('%',  #{record.account},'%')
                        or m.bind_phone like concat('%',  #{record.account},'%')
                        or m.invite_id like concat('%',  #{record.account},'%')
                        )
                </if>
@@ -22,13 +28,17 @@
                <if test="record.accountType != null" >
                    and m.account_type = #{record.accountType}
                </if>
                <if test="record.level!=null and record.level!=''">
                    and m.level=#{record.level}
                </if>
            </if>
        </where>
        order by m.CREATED_TIME desc
        GROUP BY m.id order by m.CREATED_TIME desc
    </select>
    <select id="getMallMemberInfoById" resultType="cc.mrbird.febs.mall.vo.MallMemberVo">
        SELECT a.name,
        SELECT a.id,
               a.name,
               a.phone,
               a.email,
               a.sex,
@@ -36,12 +46,17 @@
               a.level,
               a.account_status,
               a.CREATED_TIME,
               c.balance,
               IFNULL(c.balance,0) balance,
               IFNULL(c.score,0) score,
               IFNULL(c.prize_score,0) prizeScore,
               d.description levelName,
               b.name
               FROM mall_member a
            LEFT JOIN mall_member b on a.referrer_id = b.invite_id
            LEFT JOIN mall_member_wallet c on c.member_id = a.id
            LEFT JOIN data_dictionary_custom d on d.code = a.level
            where a.id = #{id}
            GROUP BY a.id
    </select>
    <select id="selectInfoByAccount" resultType="cc.mrbird.febs.mall.entity.MallMember">
@@ -64,14 +79,20 @@
            a.invite_id,
            2 isCurrent,
            a.created_time,
            (select sum(b.amount) from mall_member e
                                           inner join mall_order_info b on e.id=b.member_id and b.status in (2, 3, 4)
             where e.invite_id=a.invite_id or e.referrer_id=a.invite_id) amount,
            p.prize_score,
            u.description levelName,
            (select sum(e.amount)
             from mall_order_info e
                      inner join mall_member b on e.member_id=b.ID
                      inner join mall_order_item c on e.id = c.order_id -- and c.is_normal=2
             where e.status in (2, 3, 4) and e.order_type=1 and (b.invite_id=a.invite_id or b.referrer_id=a.invite_id)) amount,
            (select count(1) from mall_member e
                                      inner join mall_order_info b on e.id=b.member_id and b.status in (2, 3, 4)
             where e.invite_id=a.invite_id or e.referrer_id=a.invite_id) orderCnt,
            (select count(1) from mall_member x where x.referrer_id=a.invite_id) cnt
                      inner join mall_order_info b on e.id=b.member_id and b.status in (2, 3, 4)
             where find_in_set(a.invite_id, e.referrer_ids)) orderCnt,
            (select count(1) from mall_member x where find_in_set(a.invite_id, x.referrer_ids)) cnt
        from mall_member a
        inner join mall_member_wallet p on a.id=p.member_id
        left join data_dictionary_custom u on a.level=u.code and u.type='AGENT_LEVEL'
        where a.referrer_id=#{inviteId}
    </select>
@@ -158,7 +179,7 @@
    <select id="selectMemberParentAgentList" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select * from mall_member
        where level not in  ('ZERO_LEVEL', 'FIRST_LEVEL') and  invite_id IN
        where level not in  ('ZERO_LEVEL', 'FIRST_LEVEL') and invite_id!=#{refererId} and invite_id IN
        <foreach collection = "list" item = "item"  separator=","  open = "(" close = ")" >
            #{item}
        </foreach >
@@ -207,4 +228,183 @@
    <select id="getAppVersionListInPage" resultType="cc.mrbird.febs.mall.entity.AppVersion">
        select a.* from app_version a
    </select>
    <select id="selectByIdAndNoLevel" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select * from mall_member where level != #{level}
        <if test="refererId != null and refererId != ''">
            and referrer_id=#{refererId}
        </if>
    </select>
    <select id="selectMallMemberByInviteIdAndLevel" resultType="cc.mrbird.febs.mall.entity.MallMember">
        SELECT
            m.*, b.
            VALUE
        FROM
            mall_member m
                LEFT JOIN data_dictionary_custom b ON m. LEVEL = b. CODE
        WHERE
            find_in_set(#{inviteId}, m.referrer_ids)
          AND b.type = 'AGENT_LEVEL'
          AND b.VALUE > (
            SELECT
                VALUE
            FROM
                data_dictionary_custom a
            WHERE
                a. CODE = #{level}
              AND a.type = 'AGENT_LEVEL'
        )
        GROUP BY
            m.id
    </select>
    <select id="getAgentLevelSetInfoByMemberId" resultType="cc.mrbird.febs.mall.vo.AdminAgentLevelSetInfoVo">
        SELECT a.id,d.code levelCode
        FROM mall_member a
                 LEFT JOIN data_dictionary_custom d on d.code = a.level
        where a.id = #{id} and d.type = 'AGENT_LEVEL'
        GROUP BY a.id
    </select>
    <select id="getMallDataListInPage" resultType="cc.mrbird.febs.mall.vo.MallDataVo">
        SELECT
            DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') createdTime,
            IFNULL(t1.tol, 0) *- 1 AS payMoney,
            IFNULL(t2.to2, 0) AS refundMoney,
            IFNULL(t3.to3, 0) *- 1 AS rewordMoney,
            (
                    (IFNULL(t1.tol, 0)*- 1) - (IFNULL(t2.to2, 0)) + (IFNULL(t3.to3, 0)*- 1)
                ) AS surplusMoney
        FROM
            mall_money_flow a
                LEFT JOIN (
                SELECT
                    b.CREATED_TIME,
                    IFNULL(SUM(b.amount), 0) AS tol
                FROM
                    mall_money_flow b
                WHERE
                    b.type = 3
                GROUP BY
                    DATE_FORMAT(b.CREATED_TIME, '%Y-%m-%d')
            ) t1 ON DATE_FORMAT(t1.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d')
                LEFT JOIN (
                SELECT
                    c.CREATED_TIME,
                    IFNULL(SUM(c.amount), 0) AS to2
                FROM
                    mall_money_flow c
                WHERE
                    c.type = 4
                GROUP BY
                    DATE_FORMAT(c.CREATED_TIME, '%Y-%m-%d')
            ) t2 ON DATE_FORMAT(t2.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d')
                LEFT JOIN (
                SELECT
                    d.CREATED_TIME,
                    IFNULL(SUM(d.amount), 0) AS to3
                FROM
                    mall_money_flow d
                WHERE
                    d.type IN (1, 2)
                GROUP BY
                    DATE_FORMAT(d.CREATED_TIME, '%Y-%m-%d')
            ) t3 ON DATE_FORMAT(t3.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d')
        GROUP BY
            DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d')
        ORDER BY
            DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') DESC
    </select>
<!--    <select id="selectRankListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember">-->
<!--        select a.*, b.*-->
<!--        from mall_member a-->
<!--            inner join (-->
<!--                select b.referrer_id refererId, sum(a.amount) amount, max(a.order_time) orderTime-->
<!--                    from mall_order_info a-->
<!--                    inner join mall_member b on a.member_id=b.ID-->
<!--                    inner join mall_order_item c on a.id = c.order_id and c.is_normal=2-->
<!--                where a.status in (2, 3, 4) and a.order_type=1-->
<!--                &lt;!&ndash; 月 &ndash;&gt;-->
<!--                <if test="record.query == '2'">-->
<!--                    and date_format(#{record.createdTime},'%Y-%m') = date_format(b.order_time,'%Y-%m')-->
<!--                </if>-->
<!--                group by b.referrer_id-->
<!--            ) b  on a.invite_id=b.refererId-->
<!--        order by b.amount desc, b.orderTime desc-->
<!--    </select>-->
    <select id="selectRankListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select a.*, b.*
        from mall_member a
            inner join (
                select b.referrer_id refererId, sum(a.amount) amount, max(a.pay_time) orderTime
                from mall_achieve_record a
                    inner join mall_member b on a.member_id=b.ID
                where 1=1
                <!-- 月 -->
                <if test="record.query == '2'">
                    and date_format(#{record.createdTime},'%Y-%m') = date_format(a.achieve_time,'%Y-%m')
                </if>
                group by b.referrer_id
            ) b  on a.invite_id=b.refererId
        order by b.amount desc, b.orderTime desc
    </select>
    <select id="selectAchieveByMemberId" resultType="java.math.BigDecimal">
        select IFNULL(sum(IFNULL(a.amount, 0)), 0)
        from mall_achieve_record a
             inner join mall_member b on a.member_id=b.ID
        where 1=1
        <if test="type == 1">
            and b.invite_id=#{inviteId}
        </if>
        <if test="type == 2">
            and find_in_set(#{inviteId}, b.referrer_ids)
        </if>
    </select>
    <select id="selectMemberByName" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select * from mall_member
        where name=#{name}
    </select>
    <select id="selectMemberListHasChild" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select distinct a.* from mall_member a, mall_member b
        where a.invite_id=b.referrer_id
    </select>
    <select id="selectMemberDirectForHasLevel" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select * from mall_member
        where referrer_id=#{inviteId} and level != 'ZERO_LEVEL'
    </select>
    <select id="selectDirectorsOrStoreMaster" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select * from mall_member
        <where>
            1=1
            <if test="type == 1">
                and director = 1
            </if>
            <if test="type == 2">
                and store_master = 1
            </if>
        </where>
    </select>
    <select id="selectMemberWithLevel" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select * from mall_member
        where level=#{level}
    </select>
    <select id="selectMemberByOpenId" resultType="cc.mrbird.febs.mall.entity.MallMember">
        SELECT a.*
        FROM mall_member a
        where a.open_id = #{openId} limit 1
    </select>
</mapper>