From d41bbcde17f899035aff34890cafeda2cc23d30e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sat, 08 Apr 2023 12:32:33 +0800
Subject: [PATCH] 设置内转开关

---
 src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java             |    2 +-
 src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java              |    7 ++++---
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java            |   16 ++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |    1 +
 src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java               |    2 +-
 src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java                |    2 +-
 6 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
index 50797b6..1e7d307 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -90,10 +90,10 @@
     public Binding autoLevelUpBind() {
         return BindingBuilder.bind(autoLevelUpAgentQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT);
     }
-
+    // 订单返利 开始
     @Bean
     public DirectExchange agentReturnMoneyExchange() {
-        return new DirectExchange(RabbitQueueEnum.AGENT_REUTRN_MONEY.getExchange());
+        return new DirectExchange(RabbitQueueEnum.AGENT_RETURN_MONEY.getExchange());
     }
 
     @Bean
@@ -103,8 +103,9 @@
 
     @Bean
     public Binding agentReturnMoneyBind() {
-        return BindingBuilder.bind(agentReturnMoneyQueue()).to(agentReturnMoneyExchange()).with(RabbitQueueEnum.AGENT_REUTRN_MONEY.getRoute());
+        return BindingBuilder.bind(agentReturnMoneyQueue()).to(agentReturnMoneyExchange()).with(RabbitQueueEnum.AGENT_RETURN_MONEY.getRoute());
     }
+    // 订单返利 结束
 
 
     @Bean
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 bde3d03..214b3a8 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
@@ -278,6 +278,11 @@
                 String levelNormal = MemberLevelEnum.NORMAL.getType();
                 BigDecimal cashPercentNormal = BigDecimal.ZERO;
                 BigDecimal scorePercentNormal = BigDecimal.ZERO;
+
+                DataDictionaryCustom poolScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                        PerkEnum.POOL_SCORE_PRICE.getType(),
+                        PerkEnum.POOL_SCORE_PRICE.getCode());
+                BigDecimal poolScorePrice = new BigDecimal(poolScorePriceDic.getValue() == null ? "1" : poolScorePriceDic.getValue());
                 for(MallMember teamPerkMember : mallMemberTeamPerk){
                     String level = teamPerkMember.getLevel();
                     //比较两个级别的大小,level大于levelNormal返回1
@@ -295,7 +300,10 @@
                         scorePercent = scorePercent.subtract(scorePercentNormal);
 
                         BigDecimal cashAmount = amountTC.multiply(cashPercent).setScale(2, BigDecimal.ROUND_DOWN);
+
+                        //如果是积分,除以当前价格,得到数量。
                         BigDecimal scoreCnt = amountTC.multiply(scorePercent).setScale(2, BigDecimal.ROUND_DOWN);
+                        scoreCnt = scoreCnt.divide(poolScorePrice, 2 ,BigDecimal.ROUND_DOWN);
                         if(cashAmount.compareTo(BigDecimal.ZERO) > 0){
                             addWalletInfoAndMoneyFlow(cashAmount,
                                     teamPerkMemberId,
@@ -340,6 +348,14 @@
             BigDecimal perkEnumDicPercent = new BigDecimal(perkEnumDic.getValue() == null ? "0" : perkEnumDic.getValue());
             //获得数量
             BigDecimal perkEnumDicPercentPerk = perkEnumDicPercent.multiply(AppContants.PERCENTAGE).multiply(amountTC).setScale(2, BigDecimal.ROUND_DOWN);
+            //如果是积分,除以当前价格,得到数量。
+            if(walletField.equals("score")){
+                DataDictionaryCustom poolScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                        PerkEnum.POOL_SCORE_PRICE.getType(),
+                        PerkEnum.POOL_SCORE_PRICE.getCode());
+                BigDecimal poolScorePrice = new BigDecimal(poolScorePriceDic.getValue() == null ? "1" : poolScorePriceDic.getValue());
+                perkEnumDicPercentPerk = perkEnumDicPercentPerk.divide(poolScorePrice, 2 ,BigDecimal.ROUND_DOWN);
+            }
             if(perkEnumDicPercentPerk.compareTo(BigDecimal.ZERO) > 0){
                 addWalletInfoAndMoneyFlow(perkEnumDicPercentPerk,memberId,walletField,type,flowType,orderNo);
             }
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 9e6f74b..aa6ff88 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
@@ -366,6 +366,7 @@
                 mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
                 agentProducer.sendAutoLevelUpMsg(member.getId());
                 agentProducer.sendOrderReturn(orderInfo.getId());
+                agentProducer.sendReturnMoneyMsg(orderInfo.getId());
                 break;
             case "4":
                 if (orderInfo.getOrderType() != 2) {
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
index 47cee57..69b8301 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -8,6 +8,6 @@
 
     public static final String QUEUE_DEFAULT = "queue_default";
     public static final String AGENT_AUTO_LEVEL_UP = "queue_agent_auto_level_up";
-    public static final String AGENT_RETURN_MONEY = "queue_agent_return_money";
+    public static final String AGENT_RETURN_MONEY = "queue_h_agent_return_money";
     public static final String ORDER_RETURN_MONEY = "queue_order_return_money";
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
index 90122ca..adfbda4 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
@@ -10,7 +10,7 @@
     ORDER_CANCEL_DELAY_TTL("exchange_order_delay_ttl", "route_key_order_delay_ttl", "queue_order_delay_ttl"),
     ORDER_CANCEL_DELAY("exchange_order_delay", "route_key_order_delay", "queue_order_delay"),
 
-    AGENT_REUTRN_MONEY("exchange_agent_return_money", "route_key_agent_return_money", "queue_agent_return_money"),
+    AGENT_RETURN_MONEY("exchange_h_agent_return_money", "route_key_h_agent_return_money", "queue_h_agent_return_money"),
 
     ORDER_RETURN_MONEY("exchange_order_return_money", "route_key_order_return_money", "queue_order_return_money");
 
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
index 0ddb24b..f859499 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -74,6 +74,6 @@
 
     public void sendReturnMoneyMsg(Long orderId) {
         log.info("发送返利消息:{}", orderId);
-        rabbitTemplate.convertAndSend(RabbitQueueEnum.AGENT_REUTRN_MONEY.getExchange(), RabbitQueueEnum.AGENT_REUTRN_MONEY.getRoute(), orderId);
+        rabbitTemplate.convertAndSend(RabbitQueueEnum.AGENT_RETURN_MONEY.getExchange(), RabbitQueueEnum.AGENT_RETURN_MONEY.getRoute(), orderId);
     }
 }

--
Gitblit v1.9.1