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/rabbit/consumer/AgentConsumer.java      |    2 
 src/test/java/cc/mrbird/febs/AgentTest.java                          |    9 ++++
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java |   51 +++++++++++--------------
 3 files changed, 33 insertions(+), 29 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);
         }
 
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
index fb4837b..705b3f0 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
@@ -51,7 +51,7 @@
         }
     }
 
-    @RabbitListener(queues = QueueConstants.AGENT_RETURN_MONEY)
+//    @RabbitListener(queues = QueueConstants.AGENT_RETURN_MONEY)
     public void agentReturnMoney(String orderId) {
         log.info("收到返利消息:{}", orderId);
         try{
diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java
index 476e5ec..f4f726d 100644
--- a/src/test/java/cc/mrbird/febs/AgentTest.java
+++ b/src/test/java/cc/mrbird/febs/AgentTest.java
@@ -15,6 +15,7 @@
 import org.springframework.boot.test.context.SpringBootTest;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 /**
  * @author wzy
@@ -102,4 +103,12 @@
 
         agentProducer.sendReturnMoneyMsg(14L);
     }
+
+    @Test
+    public void bigdecimalTest() {
+        BigDecimal aa = new BigDecimal("1.345");
+
+        System.out.println(aa.setScale(2, RoundingMode.DOWN));
+        System.out.println(aa.setScale(2, RoundingMode.UP));
+    }
 }

--
Gitblit v1.9.1