KKSU
2025-01-03 f185d83c7a25c8ece24336fd889a09472d526688
refactor(mall): 优化会员等级计算逻辑

- 移除了不必要的 RoundingMode 导入
- 简化了会员等级更新的条件判断
- 删除了冗余的代码块,提高了代码可读性
- 优化了金额计算逻辑,避免了不必要的四舍五入操作
1 files modified
16 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
@@ -33,7 +33,6 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -535,31 +534,16 @@
            BigDecimal subtract = amountAll.subtract(amountNow);
            if(subtract.compareTo(amount) <= 0){
                runVipGrow.setAmountNow(amountAll);
                mallCharge.setVipCode(runVipGrow.getLevelNext());
            }else{
                runVipGrow.setAmountNow(amountNow.add(amount).setScale(2, RoundingMode.DOWN));
                mallCharge.setVipCode(memberLevel);
            }
            runVipGrow.setAmount(amount);
            runVipGrowMapper.updateById(runVipGrow);
        }else{
            BigDecimal presentPrice = runVip.getPresentPrice();
            BigDecimal add = presentPrice.add(amount);
            BigDecimal presentPriceNext = runVipNext.getPresentPrice();
            runVipGrow = new RunVipGrow();
            runVipGrow.setMemberId(memberId);
            runVipGrow.setLevelNow(memberLevel);
            runVipGrow.setLevelNext(runVipNext.getVipCode());
            runVipGrow.setAmountAll(presentPriceNext);
            runVipGrow.setAmount(add);
            runVipGrow.setAmountNow(add);
            runVipGrowMapper.insert(runVipGrow);
            if(presentPriceNext.compareTo(add) <= 0){
                mallCharge.setVipCode(runVipGrow.getLevelNext());
            }