fix: 订单保存优惠券折扣价格
This commit is contained in:
@@ -27,7 +27,9 @@ public class TbUserCouponVo {
|
||||
private boolean isUse = false;
|
||||
|
||||
private Integer currentUseNum = 0;
|
||||
private BigDecimal currentDiscountAmount = new BigDecimal(0);
|
||||
|
||||
private BigDecimal finalDiscountAmount = new BigDecimal(0);
|
||||
private Integer finalUseNum = 0;
|
||||
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
|
||||
@@ -955,7 +955,7 @@ public class CartService {
|
||||
tbActivateOutRecord.setStatus(TableConstant.ActivateOutRecord.Status.CLOSED.getValue());
|
||||
tbActivateOutRecord.setCreateTime(DateUtil.date());
|
||||
tbActivateOutRecord.setRefNum(0);
|
||||
couponVo.setCurrentDiscountAmount(couponVo.getDiscountAmount());
|
||||
couponVo.setFinalDiscountAmount(couponVo.getDiscountAmount());
|
||||
|
||||
}
|
||||
|
||||
@@ -1134,18 +1134,18 @@ public class CartService {
|
||||
ArrayList<TbActivateOutRecord> outRecords, Integer memberId) {
|
||||
TbUserCouponVo couponVo = getCanUseCoupon(couponMap, cashierCart.getProductId());
|
||||
if (couponVo != null && couponVo.getCurrentUseNum() > 0) {
|
||||
BigDecimal currentUseNum;
|
||||
BigDecimal currentUseNum = BigDecimal.ZERO;
|
||||
List<TbUserCouponVo> tbUserCouponVos = usedCouponMap.computeIfAbsent(cashierCart.getProductId(), k -> new ArrayList<>());
|
||||
tbUserCouponVos.add(couponVo);
|
||||
TbCashierCart balanceCart = null;
|
||||
|
||||
if (cashierCart.getNumber() < couponVo.getCurrentUseNum()) {
|
||||
cashierCart.setUserCouponId(couponVo.getId());
|
||||
discountAmount = discountAmount.add(cashierCart.getTotalAmountByNum(null));
|
||||
couponVo.setCurrentUseNum(couponVo.getCurrentUseNum() - cashierCart.getNumber());
|
||||
}
|
||||
List<TbUserCouponVo> tbUserCouponVos = usedCouponMap.computeIfAbsent(cashierCart.getProductId(), k -> new ArrayList<>());
|
||||
tbUserCouponVos.add(couponVo);
|
||||
|
||||
TbCashierCart balanceCart = null;
|
||||
// 优惠券数量小于购物车数量,分割购物车数据
|
||||
if (cashierCart.getNumber() > couponVo.getCurrentUseNum()) {
|
||||
currentUseNum = BigDecimal.valueOf(cashierCart.getNumber());
|
||||
// 优惠券数量小于购物车数量,分割购物车数据
|
||||
}else if (cashierCart.getNumber() > couponVo.getCurrentUseNum()) {
|
||||
currentUseNum = BigDecimal.valueOf(couponVo.getCurrentUseNum());
|
||||
BigDecimal cartNum = BigDecimal.valueOf(cashierCart.getNumber());
|
||||
int balanceNum = cashierCart.getTotalNumber() - couponVo.getCurrentUseNum();
|
||||
@@ -1189,7 +1189,7 @@ public class CartService {
|
||||
tbActivateOutRecord.setRefNum(0);
|
||||
outRecords.add(tbActivateOutRecord);
|
||||
|
||||
couponVo.setCurrentDiscountAmount(couponVo.getCurrentDiscountAmount().add(discountAmount));
|
||||
couponVo.setFinalDiscountAmount(discountAmount);
|
||||
// 优惠券未消耗完毕
|
||||
if (balanceCart != null && getCanUseCoupon(couponMap, balanceCart.getProductId()) != null) {
|
||||
discountAmount = reduceProCoupon(couponMap, balanceCart, usedCouponMap, discountAmount, balanceCartList, outRecords, memberId);
|
||||
|
||||
Reference in New Issue
Block a user