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