From 11e160c6ac65cba824596b0f4b718d766878ed82 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 03 Jan 2025 17:37:47 +0800
Subject: [PATCH] fix(mall): 修复跑级计算错误

---
 src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
index 8e99a59..cf29d0c 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
@@ -546,16 +546,21 @@
             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(runVipNext.getPresentPrice());
-            runVipGrow.setAmount(amount);
-            runVipGrow.setAmountNow(amount);
+            runVipGrow.setAmountAll(presentPriceNext);
+            runVipGrow.setAmount(add);
+            runVipGrow.setAmountNow(add);
             runVipGrowMapper.insert(runVipGrow);
 
-            if(runVipGrow.getAmountAll().compareTo(amount) <= 0){
+            if(presentPriceNext.compareTo(add) <= 0){
                 mallCharge.setVipCode(runVipGrow.getLevelNext());
             }
         }
@@ -663,7 +668,8 @@
                 mallCharge.setVipCode(runVipGrow.getLevelNext());
             }
         }else{
-            if(runVipNext.getPresentPrice().compareTo(amount) <= 0){
+            BigDecimal add = runVip.getPresentPrice().add(amount);
+            if(runVipNext.getPresentPrice().compareTo(add) <= 0){
                 mallCharge.setVipCode(runVipNext.getVipCode());
             }
         }

--
Gitblit v1.9.1