fix: 折扣金额修复
This commit is contained in:
parent
ecbf54604f
commit
6854619b71
|
|
@ -25,6 +25,7 @@ import javax.persistence.*;
|
|||
import javax.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.io.Serializable;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
/**
|
||||
* @author lyf
|
||||
|
|
@ -221,15 +222,21 @@ public class TbCashierCart implements Serializable {
|
|||
* 获取总价不包含打包费
|
||||
*
|
||||
*/
|
||||
public BigDecimal getTotalAmountByNum(BigDecimal num) {
|
||||
public BigDecimal getTotalAmountByNum(BigDecimal num, BigDecimal discountRadio) {
|
||||
if (discountRadio == null) {
|
||||
discountRadio = new BigDecimal("1");
|
||||
}
|
||||
resetTotalAmount(discountRadio);
|
||||
if (num == null) {
|
||||
num = totalNumber;
|
||||
}
|
||||
if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
|
||||
return num.multiply(memberPrice);
|
||||
} else {
|
||||
return num.multiply(discountSaleAmount != null ? discountSaleAmount : salePrice);
|
||||
}
|
||||
|
||||
return totalAmount.divide(totalNumber, 9, RoundingMode.HALF_UP).multiply(num).setScale(2, RoundingMode.HALF_UP);
|
||||
// if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
|
||||
// return num.multiply(memberPrice);
|
||||
// } else {
|
||||
// return num.multiply(discountSaleAmount != null ? discountSaleAmount : salePrice);
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1287,7 +1287,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
TbCashierCart balanceCart = null;
|
||||
if (cashierCart.getNumber().compareTo(couponVo.getCurrentUseNum()) < 0) {
|
||||
cashierCart.setUserCouponId(couponVo.getId());
|
||||
discountAmount = discountAmount.add(cashierCart.getTotalAmountByNum(null));
|
||||
discountAmount = discountAmount.add(cashierCart.getTotalAmountByNum(null, null));
|
||||
couponVo.setCurrentUseNum(couponVo.getCurrentUseNum().subtract(cashierCart.getNumber()));
|
||||
currentUseNum = cashierCart.getNumber();
|
||||
// 优惠券数量小于购物车数量,分割购物车数据
|
||||
|
|
@ -1297,7 +1297,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
BigDecimal balanceNum = cashierCart.getTotalNumber().subtract(couponVo.getCurrentUseNum());
|
||||
BigDecimal singlePackFee = cashierCart.getPackFee().divide(cartNum, RoundingMode.HALF_UP);
|
||||
cashierCart.setPackFee(singlePackFee.multiply(currentUseNum));
|
||||
BigDecimal totalAmountByNum = cashierCart.getTotalAmountByNum(couponVo.getCurrentUseNum());
|
||||
BigDecimal totalAmountByNum = cashierCart.getTotalAmountByNum(couponVo.getCurrentUseNum(), null);
|
||||
cashierCart.setTotalAmount(totalAmountByNum.add(singlePackFee.multiply(currentUseNum)));
|
||||
cashierCart.setNumber(couponVo.getCurrentUseNum());
|
||||
cashierCart.setTotalNumber(couponVo.getCurrentUseNum());
|
||||
|
|
@ -1315,7 +1315,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
balanceCart.setNumber(balanceNum);
|
||||
balanceCart.setTotalNumber(balanceNum);
|
||||
balanceCart.setPackFee(singlePackFee.multiply(balanceNum));
|
||||
balanceCart.setTotalAmount(cashierCart.getTotalAmountByNum(balanceNum).add(singlePackFee.multiply(balanceNum)));
|
||||
balanceCart.setTotalAmount(cashierCart.getTotalAmountByNum(balanceNum, null).add(singlePackFee.multiply(balanceNum)));
|
||||
balanceCartList.add(balanceCart);
|
||||
} else {
|
||||
currentUseNum =cashierCart.getNumber();
|
||||
|
|
|
|||
Loading…
Reference in New Issue