From e58bda9eed3e15ca0be919715861a30f75344e2f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 14 Aug 2023 10:49:11 +0800
Subject: [PATCH] 赠送积分更新状态

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java              |   15 ++++++-
 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java                    |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java |   16 ++++----
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java   |   13 ++++++
 src/main/resources/mapper/modules/MallMemberMapper.xml                            |   25 +++++++++---
 src/main/resources/mapper/modules/MallMoneyFlowMapper.xml                         |    5 ++
 src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java                 |    3 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java      |    5 +-
 8 files changed, 64 insertions(+), 20 deletions(-)

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 2d7e61d..ae1662b 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -74,6 +74,8 @@
 
     BigDecimal selectAchieveByMemberId(@Param("inviteId") String inviteId, @Param("type") Integer type);
 
+    BigDecimal selectOrderAmountByMemberId(@Param("inviteId") String inviteId, @Param("type") Integer type);
+
     List<MallMember> selectMemberByName(@Param("name") String name);
 
     // 查询有下级的用户
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 6121365..8fe3313 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
@@ -39,6 +39,9 @@
     BigDecimal selectThankfulCommission(@Param("date") Date date, @Param("memberId") Long memberId);
 
     MallMoneyFlow selectOneByOrderNoAndMemberId(@Param("rechargeNo")String rechargeNo, @Param("memberId")Long memberId);
+    MallMoneyFlow selectOneByOrderNoAndMemberIdAndRtMemberId(@Param("rechargeNo")String rechargeNo,
+                                                             @Param("memberId")Long memberId,
+                                                             @Param("rtMemberId")Long rtMemberId);
 
     BigDecimal selectAmountByFlowtypeAndType(@Param("memberId")Long memberId,@Param("flowType")Integer flowType,
                                              @Param("type")Integer type, @Param("status")Integer status,
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index 3f347cb..88883a8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -377,9 +377,18 @@
                 String returnPercentStr = StrUtil.isNotEmpty(returnPercentDic.getValue()) ? "1" : returnPercentDic.getValue();
                 BigDecimal returnPercent = new BigDecimal(returnPercentStr).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN);
                 BigDecimal amountActual = amountBigDecimal.multiply(returnPercent).setScale(2, BigDecimal.ROUND_DOWN);
-                memberWalletService.add(amountActual, id, "balance");
-                mallMoneyFlowService.addMoneyFlow(id, amountActual, MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(),
-                        mallOrderInfo.getOrderNo(),  FlowTypeEnum.BALANCE.getValue(),"直推奖",2);
+
+                mallMoneyFlowService.addMoneyFlow(
+                        mallMember.getId(),
+                        amountActual,
+                        MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(),
+                        mallOrderInfo.getOrderNo(),
+                        "直推奖",
+                        "直推奖",
+                        id,
+                        1,
+                        FlowTypeEnum.BALANCE.getValue(),
+                        2);
             }
         }
         for(MallOrderItem mallOrderItem : mallOrderItemList){
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 69bc4e4..18d8f58 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -359,11 +359,10 @@
         MallMember mallMember = this.baseMapper.selectById(memberId);
 
         List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
-
         MyTeamVo myTeamVo = new MyTeamVo();
         myTeamVo.setTeam(list);
-        myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1));
-        myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2));
+        myTeamVo.setMyAchieve(this.baseMapper.selectOrderAmountByMemberId(mallMember.getInviteId(), 1));
+        myTeamVo.setMyTeamAchieve(this.baseMapper.selectOrderAmountByMemberId(mallMember.getInviteId(), 2));
         myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
         return new FebsResponse().success().data(myTeamVo);
     }
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 f9861df..1cf955f 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
@@ -647,6 +647,19 @@
         orderInfo.setReceivingTime(new Date());
         this.baseMapper.updateById(orderInfo);
 
+        //是否返利
+        if(ObjectUtil.isNotEmpty(member.getReferrerId())){
+            String referrerId = member.getReferrerId();
+            MallMember mallMemberParent = memberMapper.selectInfoByInviteId(referrerId);
+            Long parentId = mallMemberParent.getId();
+            String orderNo = orderInfo.getOrderNo();
+            MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(orderNo, member.getId(), parentId);
+            mallMoneyFlow.setStatus(2);
+            mallMoneyFlow.setIsReturn(1);
+            mallMoneyFlowMapper.updateById(mallMoneyFlow);
+            memberWalletService.add(mallMoneyFlow.getAmount(), id, "balance");
+        }
+
         //生成一条团长提成记录
 //        Long orderInfoId = orderInfo.getId();
 //        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfoId);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
index a35d424..474b714 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberWithdrawServiceImpl.java
@@ -56,14 +56,14 @@
         }
 
 
-        CashOutSettingVo cashOutSettingVo = new CashOutSettingVo();
-        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode());
-        if (dic != null) {
-            cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class);
-        }
-        if (withdrawalDto.getAmount().compareTo(cashOutSettingVo.getMinCashOut()) < 0) {
-            throw new FebsException("最小提现金额为"+cashOutSettingVo.getMinCashOut()+"元");
-        }
+//        CashOutSettingVo cashOutSettingVo = new CashOutSettingVo();
+//        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode());
+//        if (dic != null) {
+//            cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class);
+//        }
+//        if (withdrawalDto.getAmount().compareTo(cashOutSettingVo.getMinCashOut()) < 0) {
+//            throw new FebsException("最小提现金额为"+cashOutSettingVo.getMinCashOut()+"元");
+//        }
 
         String openId = mallMember.getOpenId();
         if(StrUtil.isEmpty(openId)){
diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml
index f1f4c59..5927e97 100644
--- a/src/main/resources/mapper/modules/MallMemberMapper.xml
+++ b/src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -83,12 +83,12 @@
             (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 (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.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_item c on e.id = c.order_id
+             where e.status in (2, 3, 4) and (find_in_set(a.invite_id, b.referrer_ids))) amount,
+            (select count(id) from mall_order_info e
+                      inner join mall_member  b on e.id = b.member_id and e.status in (2, 3, 4)
+             where (find_in_set(a.invite_id, b.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
         where a.referrer_id=#{inviteId}
@@ -366,6 +366,19 @@
         </if>
     </select>
 
+    <select id="selectOrderAmountByMemberId" resultType="java.math.BigDecimal">
+        select IFNULL(sum(IFNULL(e.amount, 0)), 0)
+        from mall_order_info e
+        inner join mall_member b on e.member_id=b.ID
+        where e.status in (2, 3, 4)
+            <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}
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index fecdb7a..dfde769 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -139,6 +139,11 @@
         where a.order_no = #{rechargeNo} and a.member_id = #{memberId}
     </select>
 
+    <select id="selectOneByOrderNoAndMemberIdAndRtMemberId" resultType="cc.mrbird.febs.mall.entity.MallMoneyFlow">
+        select a.* from mall_money_flow a
+        where a.order_no = #{rechargeNo} and a.member_id = #{memberId} and a.rt_member_id = @{rtMemberId}
+    </select>
+
     <select id="selectAmountByFlowtypeAndType" resultType="java.math.BigDecimal">
         select ifnull(sum(a.amount),0) from mall_money_flow a
         <where>

--
Gitblit v1.9.1