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