fix: 单品改价修改
This commit is contained in:
parent
3a513844a4
commit
5df075910b
|
|
@ -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) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue