From f681a6a7852eb7c868ea539155861729c3e99da1 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 19 May 2022 17:59:07 +0800
Subject: [PATCH] finish return bonus

---
 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java                     |    5 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java    |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java       |    5 +
 src/main/resources/mapper/modules/MallMemberMapper.xml                             |   59 ++++++++++----
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml                          |    2 
 src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java                |    5 +
 src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java                        |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java |    5 
 src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java              |    7 +
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberWalletService.java         |    2 
 src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java             |    4 
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java        |  119 ++++++++++++++++++++++++-----
 src/main/resources/mapper/modules/MallMoneyFlowMapper.xml                          |    8 ++
 src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java                  |    2 
 src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java               |    2 
 15 files changed, 187 insertions(+), 42 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index d7cba34..38f6804 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -10,7 +10,9 @@
     STATIC_BONUS("BONUS_TYPE", "STATIC_BONUS"),
     DYNAMIC_BONUS("BONUS_TYPE", "DYNAMIC_BONUS"),
     INDRECT_BONUS("BONUS_TYPE", "INDRECT_BONUS"),
-    AGENT_BONUS("BONUS_TYPE", "AGENT_BONUS");
+    AGENT_BONUS("BONUS_TYPE", "AGENT_BONUS"),
+    THANKFUL_BONUS("BONUS_TYPE", "THANKFUL_BONUS"),
+    RANK_BONUS("BONUS_TYPE", "RANK_BONUS");
 
     private String type;
 
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
index 8a023ba..d5b8329 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
@@ -73,7 +73,12 @@
     /**
      * 竞猜积分签到
      */
-    SCORE_SIGN(14);
+    SCORE_SIGN(14),
+
+    /**
+     * 感恩奖
+     */
+    THANKFUL(15);
 
     private final int value;
 
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
index 2fa493f..0a52615 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
@@ -35,4 +35,6 @@
     private BigDecimal amount;
 
     private BigDecimal costPrice;
+
+    private Integer isNormal;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
index 598055a..c155f00 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -74,4 +74,9 @@
     IPage<MallMember> selectRankListInPage(IPage<MallMember> page, @Param("record") MallMember mallMember);
 
     List<MallMember> selectMemberByName(@Param("name") String name);
+
+    // 查询有下级的用户
+    List<MallMember> selectMemberListHasChild();
+
+    List<MallMember> selectMemberDirectForHasLevel(@Param("inviteId") String inviteId);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
index b3d6d21..eaa05c6 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
@@ -35,4 +35,6 @@
     BigDecimal selectProfitByDateAndMemberId(Long memberId);
 
     BigDecimal selectCommissionIncome(@Param("type") Integer type, @Param("date") Date date, @Param("memberId") Long memebrid);
+
+    BigDecimal selectThankfulCommission(@Param("date") Date date, @Param("memberId") Long memberId);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberWalletService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberWalletService.java
index 5be6491..7a74cb0 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberWalletService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberWalletService.java
@@ -20,7 +20,7 @@
 
     void add(BigDecimal amount, Long memberId, String... field);
 
-    void reduce(BigDecimal amount, Long memberId, String field);
+    int reduce(BigDecimal amount, Long memberId, String field);
 
     void commissionChange(CommissionChangeDto commissionChange);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java
index 9e890d6..fba7e4a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMallMoneyFlowService.java
@@ -11,4 +11,6 @@
 
     void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Integer flowType);
 
+    void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Long rtMemberId, Integer flowType);
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java b/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
index 6927a41..c4dccd5 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMemberProfitService.java
@@ -27,4 +27,9 @@
      * 排名分红
      */
     void rankProfit();
+
+    /**
+     * 感恩奖
+     */
+    void thankfulProfit();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java
index 96f94e6..1221e3b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberWalletServiceImpl.java
@@ -177,7 +177,7 @@
     }
 
     @Override
-    public void reduce(BigDecimal amount, Long memberId, String field) {
+    public int reduce(BigDecimal amount, Long memberId, String field) {
         int i = 0;
         boolean flag = true;
 
@@ -195,7 +195,7 @@
                 BigDecimal balance = (BigDecimal) declaredField.get(wallet);
 
                 if (amount.compareTo(balance) > 0) {
-                    throw new FebsException("余额不足");
+                    return 2;
                 }
                 declaredField.set(update, balance.subtract(amount));
 
@@ -212,6 +212,7 @@
                 }
             }
         }
+        return 1;
     }
 
     @Override
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index cca6fa4..f1b519b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -142,6 +142,8 @@
                 orderItem.setStyleName(sku.getStyleName());
                 orderItem.setSkuName(sku.getSkuName());
                 orderItem.setSkuImage(sku.getSkuImage());
+                orderItem.setIsNormal(mallGoods.getIsNormal());
+                orderItem.setCostPrice(sku.getCostPrice());
 
                 total = total.add(amount);
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java
index c25680c..290b8c9 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMoneyFlowServiceImpl.java
@@ -38,4 +38,9 @@
     public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Integer flowType) {
         this.addMoneyFlow(memberId, amount, type, orderNo, null, null, null, null, flowType);
     }
+
+    @Override
+    public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, Long rtMemberId, Integer flowType) {
+        this.addMoneyFlow(memberId, amount, type, orderNo, null, null, rtMemberId, null, flowType);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index a47d48c..3780ec4 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -16,6 +16,8 @@
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -42,6 +44,7 @@
     private final IApiMallMemberWalletService walletService;
     private final IMallMoneyFlowService moneyFlowService;
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+    private final MallMoneyFlowMapper mallMoneyFlowMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -53,7 +56,7 @@
         }
 
         Date profitDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
-        BigDecimal totalIncome = mallOrderInfoMapper.selectTotalAmountForDate(profitDate, null);
+        BigDecimal totalIncome = mallOrderInfoMapper.selectTotalAmountUnCostForDate(profitDate, null, "D");
         if (totalIncome.compareTo(BigDecimal.ZERO) == 0) {
             return;
         }
@@ -71,10 +74,8 @@
             for (MallGoods goods : goodsList) {
                 BigDecimal goodsProfit = goods.getStaticProp().multiply(perProfit);
 
-                try {
-                    walletService.reduce(goodsProfit, member.getId(), "score");
-                } catch (Exception e) {
-                    log.info("静态分红异常:{}, {}", goodsProfit, member.getId());
+                int reduce = walletService.reduce(goodsProfit, member.getId(), "score");
+                if (reduce == 2) {
                     break;
                 }
 
@@ -132,12 +133,11 @@
                     continue;
                 }
 
-                try {
-                    walletService.reduce(direct, parentMember.getId(), "score");
-                } catch (Exception e) {
-                    log.info("隔代推荐奖异常:{}, {}", direct, parentMember.getId());
+                int reduce =  walletService.reduce(direct, parentMember.getId(), "score");
+                if (reduce == 2) {
                     continue;
                 }
+
                 walletService.add(direct, parentMember.getId(), "commission");
 
                 moneyFlowService.addMoneyFlow(parentMember.getId(), direct, MoneyFlowTypeEnum.RECOMMEND_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.COMMISSION.getValue());
@@ -149,12 +149,11 @@
                 direct = direct.divide(indrectDicProp, 2, RoundingMode.HALF_UP);
             }
 
-            try {
-                walletService.reduce(dynamicProfit, member.getId(), "score");
-            } catch (Exception e) {
-                log.info("直推奖励异常:{}, {}", dynamicProfit, member.getId());
+            int reduce = walletService.reduce(dynamicProfit, member.getId(), "score");
+            if (reduce == 2) {
                 continue;
             }
+
             walletService.add(dynamicProfit, member.getId(), "commission");
 
             moneyFlowService.addMoneyFlow(member.getId(), dynamicProfit, MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.COMMISSION.getValue());
@@ -164,7 +163,7 @@
 
     @Override
     public void agentProfit(Date profitDate) {
-        log.info("#####==代理分红==#####");
+        log.info("#####==代理分红==start==#####");
         if (profitDate == null) {
             profitDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
         }
@@ -191,25 +190,105 @@
             BigDecimal profitProp = jsonObject.getBigDecimal("profitProp");
             BigDecimal income = preProfit.multiply(profitProp);
 
-            try {
-                walletService.reduce(income, agentMember.getId(), "score");
-            } catch (Exception e) {
-                log.info("直推奖励异常:{}, {}", income, agentMember.getId());
+            int reduce = walletService.reduce(income, agentMember.getId(), "score");
+            if (reduce == 2) {
                 continue;
             }
+
             walletService.add(income, agentMember.getId(), "commission");
 
             moneyFlowService.addMoneyFlow(agentMember.getId(), income, MoneyFlowTypeEnum.AGENT_BONUS.getValue(), null, FlowTypeEnum.COMMISSION.getValue());
             moneyFlowService.addMoneyFlow(agentMember.getId(), income.negate(), MoneyFlowTypeEnum.AGENT_BONUS.getValue(), null, FlowTypeEnum.SCORE.getValue());
         }
+
+        log.info("#####==代理分红==end==#####");
     }
 
     @Override
     public void rankProfit() {
         log.info("######==排名分红==####");
+        Page<MallMember> page = new Page<>(1, 5);
+        MallMember query = new MallMember();
+        query.setQuery("2");
+        Date profitDate = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
+        query.setCreatedTime(profitDate);
+        IPage<MallMember> rankListInPage = mallMemberMapper.selectRankListInPage(page, query);
+
+        List<MallMember> rankList = rankListInPage.getRecords();
+        if (CollUtil.isEmpty(rankList)) {
+            return;
+        }
+
+        BigDecimal totalIncome = mallOrderInfoMapper.selectTotalAmountUnCostForDate(profitDate, null, "M");
+
+        List<DataDictionaryCustom> rankAward = dataDictionaryCustomMapper.selectDicByType("RANK_AWARD");
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANK_BONUS.getType(), DataDictionaryEnum.RANK_BONUS.getCode());
+
+
+        BigDecimal rankBonusTotal = new BigDecimal(dic.getValue()).divide(totalIncome, 2, RoundingMode.HALF_UP);
+        BigDecimal preBonus = rankBonusTotal.divide(BigDecimal.valueOf(100),2 , RoundingMode.HALF_UP);
+
+        int i = 0;
+        for (MallMember member : rankList) {
+            DataDictionaryCustom rank = rankAward.get(i);
+            i++;
+            BigDecimal bonus = preBonus.multiply(new BigDecimal(rank.getValue()));
+            int reduce = walletService.reduce(bonus, member.getId(), "score");
+            if (reduce == 2) {
+                continue;
+            }
+
+            walletService.add(bonus, member.getId(), "commission");
+
+            moneyFlowService.addMoneyFlow(member.getId(), bonus, MoneyFlowTypeEnum.RANK_BONUS.getValue(), null, FlowTypeEnum.COMMISSION.getValue());
+            moneyFlowService.addMoneyFlow(member.getId(), bonus.negate(), MoneyFlowTypeEnum.RANK_BONUS.getValue(), null, FlowTypeEnum.SCORE.getValue());
+        }
     }
 
-    public static void main(String[] args) {
-        System.out.println(DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1));
+    /**
+     * 拿推荐人收益(代理,直推,排名)的10%加权平分给下面直推
+     */
+    @Override
+    public void thankfulProfit() {
+        log.info("######==感恩奖==start==####");
+        List<MallMember> mallMembers = mallMemberMapper.selectMemberListHasChild();
+        if (CollUtil.isEmpty(mallMembers)) {
+            return;
+        }
+
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.THANKFUL_BONUS.getType(), DataDictionaryEnum.THANKFUL_BONUS.getCode());
+        // 感恩奖比例
+        BigDecimal prop = new BigDecimal(dic.getValue()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
+
+        Date date = DateUtil.offset(new Date(), DateField.DAY_OF_YEAR, -1);
+        for (MallMember mallMember : mallMembers) {
+            BigDecimal income = mallMoneyFlowMapper.selectThankfulCommission(date, mallMember.getId());
+            List<MallMember> children = mallMemberMapper.selectMemberDirectForHasLevel(mallMember.getInviteId());
+            if (CollUtil.isEmpty(children)) {
+                continue;
+            }
+
+            BigDecimal preProfit = income.multiply(prop).divide(BigDecimal.valueOf(children.size()), 2, RoundingMode.HALF_DOWN);
+
+
+            int reduce = walletService.reduce(preProfit.negate(), mallMember.getId(), "commission");
+            if (reduce == 2) {
+                continue;
+            }
+
+            moneyFlowService.addMoneyFlow(mallMember.getId(), income.negate(), MoneyFlowTypeEnum.THANKFUL.getValue(), null, FlowTypeEnum.COMMISSION.getValue());
+
+            for (MallMember child : children) {
+                int reduce1 = walletService.reduce(preProfit.negate(), child.getId(), "score");
+                if (reduce1 == 2) {
+                    continue;
+                }
+
+                walletService.add(preProfit, child.getId(), "commission");
+                moneyFlowService.addMoneyFlow(child.getId(), preProfit, MoneyFlowTypeEnum.THANKFUL.getValue(), null, mallMember.getId(), FlowTypeEnum.COMMISSION.getValue());
+                moneyFlowService.addMoneyFlow(child.getId(), preProfit.negate(), MoneyFlowTypeEnum.THANKFUL.getValue(), null, mallMember.getId(), FlowTypeEnum.SCORE.getValue());
+            }
+        }
+        log.info("######==感恩奖==end==####");
     }
 }
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index 88e6019..bc28913 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -306,27 +306,54 @@
             DATE_FORMAT(a.CREATED_TIME, '%Y-%m-%d') DESC
     </select>
 
-    <select id="selectRankListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember">
-        select * from (
-          select a.id, a.name, a.invite_id, a.avatar, sum(b.amount) amount,max(order_time) orderTime from mall_member a, mall_order_info b
-          where  a.id=b.member_id and b.status = 4
-        <!-- 日 -->
-        <if test="record.query == '1'">
+<!--    <select id="selectRankListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember">-->
+<!--        select * from (-->
+<!--          select a.id, a.name, a.invite_id, a.avatar, sum(b.amount) amount,max(order_time) orderTime from mall_member a, mall_order_info b-->
+<!--          where  a.id=b.member_id and b.status = 4-->
+<!--        &lt;!&ndash; 日 &ndash;&gt;-->
+<!--        <if test="record.query == '1'">-->
 
-        </if>
-        <!-- 月 -->
-        <if test="record.query == '2'">
-            and date_format(#{record.createdTime},'%Y-%m') = date_format(b.order_time,'%Y-%m')
-        </if>
-        <if test="record.amount != null">
-            and amount = #{record.amount}
-        </if>
-          group by a.id
-      ) a order by amount desc, a.orderTime desc
+<!--        </if>-->
+<!--        &lt;!&ndash; 月 &ndash;&gt;-->
+<!--        <if test="record.query == '2'">-->
+<!--            and date_format(#{record.createdTime},'%Y-%m') = date_format(b.order_time,'%Y-%m')-->
+<!--        </if>-->
+<!--        <if test="record.amount != null">-->
+<!--            and amount = #{record.amount}-->
+<!--        </if>-->
+<!--          group by a.id-->
+<!--      ) a order by amount desc, a.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.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
+                <!-- 月 -->
+                <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="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>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index 183418b..ebef8b7 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -118,4 +118,12 @@
             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>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index f85e7e5..6707604 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -237,7 +237,7 @@
         select IFNULL(sum(IFNULL(b.amount,0) - IFNULL(b.cost_price*b.cnt, 0)),0)
         from mall_order_info a
         inner join mall_order_item b on a.id=b.order_id
-        where status = 4
+        where a.status in (2, 3, 4) and a.is_normal = 2 and a.order_type=1
         <if test="member != null">
             and member_id=#{memberId}
         </if>

--
Gitblit v1.9.1