From 24a19792a6675ff0ce575cfc695b405044ce9e27 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 12 May 2025 17:16:54 +0800
Subject: [PATCH] refactor(vip): 优化积分和返佣金额的计算逻辑 - 移除了不必要的除以100 操作,直接使用百分比进行计算 - 简化了计算过程,提高了代码可读性和性能 - 保留了原有的精度处理和四舍五入逻辑
---
src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
index cce24d7..c1f10c9 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
@@ -113,7 +113,7 @@
if(ObjectUtil.isNotEmpty(happyMemberLevel)){
// 计算自己获得的积分
BigDecimal minePercent = happyMemberLevel.getMinePercent();
- BigDecimal mineScore = amount.multiply(minePercent.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN)).setScale(0, RoundingMode.HALF_DOWN);
+ BigDecimal mineScore = amount.multiply(minePercent).setScale(0, RoundingMode.HALF_DOWN);
if(BigDecimal.ZERO.compareTo(mineScore) < 0){
recommendScoreMap.put(memberId, mineScore);
recommendTypeScoreMap.put(memberId, ScoreFlowTypeEnum.MINE_RECOMMEND.getValue());
@@ -122,7 +122,7 @@
if(StrUtil.isNotEmpty(member.getReferrerId())){
MallMember refMember = mallMemberMapper.selectInfoByInviteId(member.getReferrerId());
BigDecimal otherPercent = happyMemberLevel.getOtherPercent();
- BigDecimal otherScore = amount.multiply(otherPercent.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN)).setScale(0, RoundingMode.HALF_DOWN);
+ BigDecimal otherScore = amount.multiply(otherPercent).setScale(0, RoundingMode.HALF_DOWN);
if(BigDecimal.ZERO.compareTo(otherScore) < 0){
recommendScoreMap.put(refMember.getId(), otherScore);
recommendTypeScoreMap.put(memberId, ScoreFlowTypeEnum.OTHER_RECOMMEND.getValue());
@@ -275,8 +275,8 @@
return;
}
// 计算返佣金额
- BigDecimal divide = happySaleLevel.getReturnPercent().divide(new BigDecimal(100));
- BigDecimal multiply = mallOrderInfo.getAmount().multiply(divide).setScale(2, RoundingMode.HALF_DOWN);
+ BigDecimal returnPercent = happySaleLevel.getReturnPercent();
+ BigDecimal multiply = mallOrderInfo.getAmount().multiply(returnPercent).setScale(2, RoundingMode.HALF_DOWN);
// 如果返佣金额小于等于0,则直接返回
if(BigDecimal.ZERO.compareTo(multiply) >=0){
return;
--
Gitblit v1.9.1