From cd8e45d63020e5b6cbff26ec604fa87501884016 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 27 Sep 2021 10:33:34 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java |   51 +++++++++++++++++++++++----------------------------
 1 files changed, 23 insertions(+), 28 deletions(-)

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 33cc37d..1aa0798 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
@@ -155,7 +155,7 @@
             return;
         }
 
-        BigDecimal returnMoney = agentInfo.getDirectIncome().divide(BigDecimal.valueOf(100), RoundingMode.UP).multiply(orderInfo.getAmount());
+        BigDecimal returnMoney = agentInfo.getDirectIncome().divide(BigDecimal.valueOf(100), 2,RoundingMode.DOWN).multiply(orderInfo.getAmount());
         memberWalletService.addBalance(returnMoney, parent.getId());
 
         memberService.addMoneyFlow(parent.getId(), returnMoney, MoneyFlowTypeEnum.BONUS.getValue(), orderInfo.getOrderNo(), null, null, orderInfo.getMemberId(), null);
@@ -178,37 +178,32 @@
 
             Map<Long, BigDecimal> amount = needReturn.get(level);
 
-            if (amount != null) {
-//                amount = new HashMap<>();
-//                AgentInfo agentInfo = getAgentInfo(level);
-//                if (agentInfo == null) {
-//                    continue;
-//                }
-//
-//                BigDecimal returnMoney;
-//                if (AgentInfo.TEAM_INCOME_TYPE_AMOUNT.equals(agentInfo.getTeamIncomeType())) {
-//                    returnMoney = agentInfo.getTeamIncome();
-//                } else {
-//                    returnMoney = agentInfo.getTeamIncome().divide(BigDecimal.valueOf(100), RoundingMode.UP).multiply(orderInfo.getAmount());
-//                }
-//                amount.put(mallMember.getId(), returnMoney);
+            // 按照代理关系,返到第二级,平级奖
+            if (amount == null) {
+                amount = new HashMap<>();
+                AgentInfo agentInfo = getAgentInfo(level);
+                if (agentInfo == null) {
+                    continue;
+                }
 
-                continue;
-            }
-            amount = new HashMap<>();
-            AgentInfo agentInfo = getAgentInfo(level);
-            if (agentInfo == null) {
-                continue;
-            }
-
-            BigDecimal returnMoney;
-            if (AgentInfo.TEAM_INCOME_TYPE_AMOUNT.equals(agentInfo.getTeamIncomeType())) {
-                returnMoney = agentInfo.getTeamIncome();
+                BigDecimal returnMoney;
+                if (AgentInfo.TEAM_INCOME_TYPE_AMOUNT.equals(agentInfo.getTeamIncomeType())) {
+                    returnMoney = agentInfo.getTeamIncome();
+                } else {
+                    returnMoney = agentInfo.getTeamIncome().divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN).multiply(orderInfo.getAmount());
+                }
+                amount.put(mallMember.getId(), returnMoney);
             } else {
-                returnMoney = agentInfo.getTeamIncome().divide(BigDecimal.valueOf(100), RoundingMode.UP).multiply(orderInfo.getAmount());
+                if (!AgentLevelEnum.SECOND_LEVEL.name().equals(mallMember.getLevel())) {
+                    amount.put(mallMember.getId(), BigDecimal.ONE);
+                }
             }
 
-            amount.put(mallMember.getId(), returnMoney);
+            // 代理两级
+            if (amount.size() > 2) {
+                continue;
+            }
+
             needReturn.put(level, amount);
         }
 

--
Gitblit v1.9.1