fix: 折扣金额修复
This commit is contained in:
parent
dcaf9f4adb
commit
8d90986206
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package cn.ysk.cashier.pojo.order;
|
||||
|
||||
import cn.ysk.cashier.mybatis.entity.TbActivateOutRecord;
|
||||
import lombok.Data;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
|
@ -24,6 +25,7 @@ import javax.persistence.*;
|
|||
import javax.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.io.Serializable;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
/**
|
||||
* @author lyf
|
||||
|
|
@ -171,6 +173,10 @@ public class TbCashierCart implements Serializable {
|
|||
// 是否临时菜品
|
||||
private Integer isTemporary;
|
||||
private String unit;
|
||||
private BigDecimal discountSaleAmount;
|
||||
private String discountSaleNote;
|
||||
private Boolean isPrint;
|
||||
private String useCouponInfo;
|
||||
|
||||
public void copy(TbCashierCart source) {
|
||||
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
|
||||
|
|
@ -189,7 +195,7 @@ public class TbCashierCart implements Serializable {
|
|||
if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
|
||||
totalAmount = totalNumber.multiply(memberPrice).add(packFee);
|
||||
} else {
|
||||
totalAmount = totalNumber.multiply(salePrice).add(packFee);
|
||||
totalAmount = totalNumber.multiply(discountSaleAmount != null ? discountSaleAmount : salePrice).add(packFee);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -216,15 +222,22 @@ 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(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