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