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