From c5a7635e5fb5f69b1c171e42267083206e137b3d Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 20 Dec 2024 14:22:00 +0800
Subject: [PATCH] refactor(mall): 优化会员添加流程
---
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java | 35 +++++++++++++++++++----------------
1 files changed, 19 insertions(+), 16 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 e4fbf32..ee71133 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
@@ -24,6 +24,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.List;
/**
@@ -209,7 +210,7 @@
RunVip runVip = runVipMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, vipCode));
BigDecimal rebatePercent = runVip.getRebatePercent();
BigDecimal amount = mallCharge.getAmount();
- BigDecimal rebateAmount = amount.multiply(rebatePercent).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal rebateAmount = amount.multiply(rebatePercent).setScale(2, RoundingMode.DOWN);
BigDecimal balanceToCoin =
new BigDecimal(
dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
@@ -217,7 +218,7 @@
RunVipDataDictionaryEnum.RUN_VIP_BALANCE_TO_COIN.getCode()
).getValue()
);
- BigDecimal rebateCoin = rebateAmount.divide(balanceToCoin, 2, BigDecimal.ROUND_DOWN);
+ BigDecimal rebateCoin = rebateAmount.divide(balanceToCoin, 2, RoundingMode.DOWN);
if(BigDecimal.ZERO.compareTo(rebateCoin) >= 0){
return;
}
@@ -227,22 +228,24 @@
}
String orderNo = MallUtils.getOrderNum("FL");
if(null != parent.getReferrerId()){
- BigDecimal rebateCoinGrandpa = rebateCoin.multiply(rebatePercent);
+ BigDecimal rebateCoinGrandpa = rebateCoin.multiply(rebatePercent).setScale(2, RoundingMode.DOWN);
MallMember grandpa = mallMemberMapper.selectInfoByInviteId(parent.getReferrerId());
if(null != grandpa){
- //返利给上上级
- walletService.addBalance(rebateCoinGrandpa,grandpa.getId());
- mallMemberService.runVipMoneyFlowAdd(
- grandpa.getId(),
- mallMember.getId(),
- orderNo,
- FlowTypeEnum.BALANCE.getValue(),
- RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getValue(),
- rebateCoinGrandpa,
- StrUtil.format(RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getDescription(),mallMember.getPhone(),runVip.getVipName(),rebateCoinGrandpa),
- YesOrNoEnum.YES.getValue()
- );
- rebateCoin = rebateCoin.subtract(rebateCoinGrandpa);
+ if(BigDecimal.ZERO.compareTo(rebateCoinGrandpa) < 0){
+ //返利给上上级
+ walletService.addBalance(rebateCoinGrandpa,grandpa.getId());
+ mallMemberService.runVipMoneyFlowAdd(
+ grandpa.getId(),
+ mallMember.getId(),
+ orderNo,
+ FlowTypeEnum.BALANCE.getValue(),
+ RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getValue(),
+ rebateCoinGrandpa,
+ StrUtil.format(RunVipMoneyFlowTypeEnum.BUY_VIP_REBATE.getDescription(),mallMember.getPhone(),runVip.getVipName(),rebateCoinGrandpa),
+ YesOrNoEnum.YES.getValue()
+ );
+ rebateCoin = rebateCoin.subtract(rebateCoinGrandpa).setScale(2, RoundingMode.DOWN);
+ }
}
}
//返利给上级
--
Gitblit v1.9.1