<?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.mall.mapper.MallMoneyFlowMapper"> 
 | 
  
 | 
    <select id="selectMoneyFlowInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo"> 
 | 
        select * from mall_money_flow a where a.member_id = #{record.id} 
 | 
        order by a.CREATED_TIME desc 
 | 
    </select> 
 | 
  
 | 
    <select id="selectApiMoneyFlowInPage" resultType="cc.mrbird.febs.mall.vo.MoneyFlowVo"> 
 | 
        select 
 | 
            a.*, 
 | 
            case when a.rt_member_id is null then (select n.phone from mall_member n where n.id=a.member_id) 
 | 
                 when a.rt_member_id is not null then (select m.phone from mall_member m where m.id=a.rt_member_id) 
 | 
            end phone, 
 | 
            c.description memberLevel 
 | 
        from mall_money_flow a 
 | 
            left join mall_member b on a.rt_member_id=b.id 
 | 
            left join data_dictionary_custom c on b.level = c.code and c.type='AGENT_LEVEL' 
 | 
        <where> 
 | 
            <if test="record.inOrOut == 3"> 
 | 
                and a.amount > 0 
 | 
            </if> 
 | 
            <if test="record.inOrOut == 2"> 
 | 
                and 0 > a.amount 
 | 
            </if> 
 | 
            <if test="record.memberId != null"> 
 | 
                and a.member_id=#{record.memberId} 
 | 
            </if> 
 | 
            <if test="record.flowType != null and record.flowType != ''"> 
 | 
                and a.flow_type=#{record.flowType} 
 | 
            </if> 
 | 
            <if test="record.type != null and record.type != ''"> 
 | 
                and a.type=#{record.type} 
 | 
            </if> 
 | 
        </where> 
 | 
        order by a.created_time desc 
 | 
    </select> 
 | 
  
 | 
    <select id="getMoneyFlowListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMoneyFlowListVo"> 
 | 
        select 
 | 
        a.*, 
 | 
        b.name, 
 | 
        b.bind_phone bindPhone, 
 | 
        c.pay_method payMethod, 
 | 
        b.phone 
 | 
        from mall_money_flow a 
 | 
        inner join mall_member b on a.member_id=b.id 
 | 
        left join mall_order_info c on a.order_no = c.order_no 
 | 
        <where> 
 | 
            <if test="record != null" > 
 | 
                <if test="record.name!=null and record.name!=''"> 
 | 
                    and b.name like concat('%',  #{record.name},'%') 
 | 
                </if> 
 | 
                <if test="record.phone!=null and record.phone!=''"> 
 | 
                    and b.phone like concat('%',  #{record.phone},'%') 
 | 
                </if> 
 | 
                <if test="record.type!=null and record.type!=''"> 
 | 
                    and a.type like concat('%',  #{record.type},'%') 
 | 
                </if> 
 | 
                <if test="record.flowType!=null and record.flowType!=''"> 
 | 
                    and a.flow_type like concat('%',  #{record.flowType},'%') 
 | 
                </if> 
 | 
            </if> 
 | 
        </where> 
 | 
        order by a.created_time desc 
 | 
    </select> 
 | 
  
 | 
    <select id="getMoneyChargeListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMoneyChargeListVo"> 
 | 
        select 
 | 
        a.id id, 
 | 
        a.created_time createdTime, 
 | 
        a.amount amount, 
 | 
        a.amount_fee amountFee, 
 | 
        a.withdraw_no withdrawNo, 
 | 
        a.status status, 
 | 
        b.name, 
 | 
        b.bind_phone bindPhone, 
 | 
        b.phone 
 | 
        from mall_member_withdraw a 
 | 
        inner join mall_member b on a.member_id=b.id 
 | 
        <where> 
 | 
            <if test="record != null" > 
 | 
                <if test="record.name!=null and record.name!=''"> 
 | 
                    and b.name like concat('%',  #{record.name},'%') 
 | 
                </if> 
 | 
                <if test="record.phone!=null and record.phone!=''"> 
 | 
                    and b.phone like concat('%',  #{record.phone},'%') 
 | 
                </if> 
 | 
                <if test="record.status!=null and record.status!=''"> 
 | 
                    and a.status = #{record.status} 
 | 
                </if> 
 | 
            </if> 
 | 
        </where> 
 | 
        order by a.created_time desc 
 | 
    </select> 
 | 
  
 | 
    <select id="selectMoneyFlowProfitByDate" resultType="cc.mrbird.febs.mall.entity.MallMoneyFlow"> 
 | 
        select a.member_id, sum(a.amount) amount from mall_money_flow a 
 | 
        where a.type in (1, 2) and date_format(a.created_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d') 
 | 
        and is_return is null 
 | 
        group by a.member_id; 
 | 
    </select> 
 | 
  
 | 
    <update id="updateIsReturnByMemberId"> 
 | 
        update mall_money_flow 
 | 
        set is_return=#{isReturn} 
 | 
        where member_id=#{memberId} and type in (1, 2) 
 | 
    </update> 
 | 
  
 | 
    <select id="selectProfitByDateAndMemberId" resultType="java.math.BigDecimal"> 
 | 
        select ifnull(sum(a.amount),0) from mall_money_flow a 
 | 
        where member_id=#{memberId} and flow_type=4 and date_format(a.CREATED_TIME, '%Y-%m-%d') = date_format(now(), '%Y-%m-%d') and amount > 0 
 | 
    </select> 
 | 
  
 | 
    <select id="selectCommissionIncome" resultType="java.math.BigDecimal"> 
 | 
        select ifnull(sum(amount),0) from mall_money_flow 
 | 
        where flow_type =4 and type in (1,2,3,4,5,6,7,15,16,17) and member_id=#{memberId} 
 | 
        <if test="type == 1"> 
 | 
            and date_format(created_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d') 
 | 
        </if> 
 | 
        <if test="type == 2"> 
 | 
            and date_format(created_time, '%Y-%m') = date_format(#{date}, '%Y-%m') 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectThankfulCommission" resultType="java.math.BigDecimal"> 
 | 
        select ifnull(sum(amount),0) from mall_money_flow 
 | 
        where flow_type=4 and amount > 0 
 | 
          and member_id=#{memberId} 
 | 
          and date_format(created_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d') 
 | 
          and type in (2,3,4) 
 | 
    </select> 
 | 
  
 | 
    <select id="selectOneByOrderNoAndMemberId" resultType="cc.mrbird.febs.mall.entity.MallMoneyFlow"> 
 | 
        select a.* from mall_money_flow a 
 | 
        where a.order_no = #{rechargeNo} and a.member_id = #{memberId} 
 | 
    </select> 
 | 
  
 | 
    <select id="selectAmountByFlowtypeAndType" resultType="java.math.BigDecimal"> 
 | 
        select ifnull(sum(a.amount),0) from mall_money_flow a 
 | 
        <where> 
 | 
            a.member_id = #{memberId} 
 | 
            <if test="flowType!=null and flowType!=''"> 
 | 
                and  a.flow_type = #{flowType} 
 | 
            </if> 
 | 
            <if test="type!=null and type!=''"> 
 | 
                and  a.type = #{type} 
 | 
            </if> 
 | 
            <if test="status!=null and status!=''"> 
 | 
                and  a.status = #{status} 
 | 
            </if> 
 | 
            <if test="dateDay!=null"> 
 | 
                and date_format(a.created_time, '%Y-%m-%d') = date_format(#{dateDay}, '%Y-%m-%d') 
 | 
            </if> 
 | 
            <if test="dateMonth!=null"> 
 | 
                and date_format(a.created_time, '%Y-%m') = date_format(#{dateMonth}, '%Y-%m') 
 | 
            </if> 
 | 
        </where> 
 | 
    </select> 
 | 
</mapper> 
 |