Commit 2bca9ef490d19f6a99492f32915931c59a62f1b5
1 parent
7ef329f5
【BUG】解决会员计算时,金额太大int类型装不下的问题
Showing
2 changed files
with
5 additions
and
2 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/bo/TradePriceCalculateRespBO.java
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDiscountActivityPriceCalculator.java
| ... | ... | @@ -18,6 +18,8 @@ import org.springframework.core.annotation.Order; |
| 18 | 18 | import org.springframework.stereotype.Component; |
| 19 | 19 | |
| 20 | 20 | import jakarta.annotation.Resource; |
| 21 | + | |
| 22 | +import java.math.BigDecimal; | |
| 21 | 23 | import java.util.List; |
| 22 | 24 | import java.util.Map; |
| 23 | 25 | |
| ... | ... | @@ -171,7 +173,8 @@ public class TradeDiscountActivityPriceCalculator implements TradePriceCalculato |
| 171 | 173 | if (discountPercent == null) { |
| 172 | 174 | return 0; |
| 173 | 175 | } |
| 174 | - Integer newPrice = price * discountPercent / 100; | |
| 176 | + BigDecimal divide = new BigDecimal(price).multiply(new BigDecimal(discountPercent)).divide(new BigDecimal(100)); | |
| 177 | + Integer newPrice = divide.intValue(); | |
| 175 | 178 | return price - newPrice; |
| 176 | 179 | } |
| 177 | 180 | ... | ... |