From 752f0a5d7a58bb73f569720b708696602a81debe Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 06 Sep 2022 15:25:22 +0800
Subject: [PATCH] 20220902

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   30 ++++++++++++++++++++++--------
 1 files changed, 22 insertions(+), 8 deletions(-)

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 b45cace..5d503c2 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
@@ -510,14 +510,28 @@
         this.baseMapper.updateById(orderInfo);
 
         //生成一条团长提成记录
-        MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
-        mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
-        mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
-        BigDecimal subtract = orderInfo.getAmount().subtract(orderInfo.getCarriage() == null ? BigDecimal.ZERO : orderInfo.getCarriage());
-        mallLeaderAchieve.setAmount(subtract);
-        mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
-        mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
-        mallLeaderAchieveMapper.insert(mallLeaderAchieve);
+        Long orderInfoId = orderInfo.getId();
+        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfoId);
+        if(CollUtil.isNotEmpty(mallOrderItemList)){
+            DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
+            BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+            for(MallOrderItem mallOrderItem : mallOrderItemList){
+                Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
+                if(1 == state){
+                    MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
+                    mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
+                    mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
+                    mallLeaderAchieve.setOrderItemId(mallOrderItem.getId());
+                    BigDecimal itemAmount = mallOrderItem.getAmount();
+                    mallLeaderAchieve.setAmount(itemAmount);
+                    BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN);
+                    mallLeaderAchieve.setProfitAmount(bigDecimal);
+                    mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
+                    mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
+                    mallLeaderAchieveMapper.insert(mallLeaderAchieve);
+                }
+            }
+        }
     }
 
     @Override

--
Gitblit v1.9.1