fix: 单品改价修改

This commit is contained in:
张松 2024-11-25 11:49:50 +08:00
parent 3a513844a4
commit 5df075910b
2 changed files with 22 additions and 8 deletions

View File

@ -192,11 +192,13 @@ public class TbCashierCart implements Serializable {
if ("true".equals(isGift)) { if ("true".equals(isGift)) {
totalAmount = packFee; totalAmount = packFee;
} else { } else {
BigDecimal subtract;
if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) { if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
totalAmount = totalNumber.multiply(memberPrice).add(packFee); subtract = memberPrice.subtract(discountSaleAmount);
} else { } else {
totalAmount = totalNumber.multiply(discountSaleAmount != null ? discountSaleAmount : salePrice).add(packFee); subtract = salePrice.subtract(discountSaleAmount);
} }
totalAmount = totalNumber.multiply(subtract.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : subtract).add(packFee);
} }
} }
@ -247,4 +249,10 @@ public class TbCashierCart implements Serializable {
} }
public void resetDiscountSaleAmount() {
BigDecimal finalAmount = BigDecimal.ZERO;
if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
}
}
} }

View File

@ -3146,13 +3146,19 @@ public class TbShopTableServiceImpl implements TbShopTableService {
throw new BadRequestException("购物车商品不存在"); throw new BadRequestException("购物车商品不存在");
} }
if (updatePriceDTO.getSaleAmount().compareTo(cashierCart.getDiscountSaleAmount()) == 0) { if (cashierCart.getIsMember() == 0) {
return cashierCart; if (cashierCart.getSalePrice().subtract(updatePriceDTO.getSaleAmount()).compareTo(BigDecimal.ZERO) < 0) {
throw new BadRequestException("折扣金额不能超过单价");
}
}else {
if (cashierCart.getMemberPrice().subtract(updatePriceDTO.getSaleAmount()).compareTo(BigDecimal.ZERO) < 0) {
throw new BadRequestException("折扣金额不能超过单价");
}
} }
BigDecimal newTotalPrice = updatePriceDTO.getSaleAmount().multiply(cashierCart.getTotalNumber()).add(cashierCart.getPackFee());
BigDecimal oldAmount = cashierCart.getTotalAmount(); BigDecimal oldAmount = cashierCart.getTotalAmount();
cashierCart.setTotalAmount(newTotalPrice); cashierCart.setDiscountSaleAmount(updatePriceDTO.getSaleAmount());
cashierCart.resetTotalAmount();
cashierCart.setUpdatedAt(DateUtil.current()); cashierCart.setUpdatedAt(DateUtil.current());
cashierCart.setDiscountSaleNote(updatePriceDTO.getNote()); cashierCart.setDiscountSaleNote(updatePriceDTO.getNote());
cashierCart.setDiscountSaleAmount(updatePriceDTO.getSaleAmount()); cashierCart.setDiscountSaleAmount(updatePriceDTO.getSaleAmount());
@ -3160,8 +3166,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
// 更新订单和detail价格 // 更新订单和detail价格
if (cashierCart.getOrderId() != null) { if (cashierCart.getOrderId() != null) {
mpOrderDetailService.updatePriceByCartId(cashierCart.getId(), updatePriceDTO.getSaleAmount(), newTotalPrice); mpOrderDetailService.updatePriceByCartId(cashierCart.getId(), updatePriceDTO.getSaleAmount(), cashierCart.getTotalAmount());
mpOrderInfoService.incrAmount(cashierCart.getOrderId(), newTotalPrice.subtract(oldAmount)); mpOrderInfoService.incrAmount(cashierCart.getOrderId(), cashierCart.getTotalAmount().subtract(oldAmount));
} }
return cashierCart; return cashierCart;
} }