diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java index 43775903..b83a735e 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java @@ -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); +// } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 54933f1d..4929b533 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -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();