Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
Tankaikai 2024-11-25 14:41:21 +08:00
commit ddcd5f2c30
2 changed files with 22 additions and 8 deletions

View File

@ -192,11 +192,13 @@ public class TbCashierCart implements Serializable {
if ("true".equals(isGift)) {
totalAmount = packFee;
} else {
BigDecimal subtract;
if (isMember != null && isMember == 1 && memberPrice != null && memberPrice.compareTo(BigDecimal.ZERO) > 0) {
totalAmount = totalNumber.multiply(memberPrice).add(packFee);
subtract = memberPrice.subtract(discountSaleAmount);
} 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("购物车商品不存在");
}
if (updatePriceDTO.getSaleAmount().compareTo(cashierCart.getDiscountSaleAmount()) == 0) {
return cashierCart;
if (cashierCart.getIsMember() == 0) {
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();
cashierCart.setTotalAmount(newTotalPrice);
cashierCart.setDiscountSaleAmount(updatePriceDTO.getSaleAmount());
cashierCart.resetTotalAmount();
cashierCart.setUpdatedAt(DateUtil.current());
cashierCart.setDiscountSaleNote(updatePriceDTO.getNote());
cashierCart.setDiscountSaleAmount(updatePriceDTO.getSaleAmount());
@ -3160,8 +3166,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
// 更新订单和detail价格
if (cashierCart.getOrderId() != null) {
mpOrderDetailService.updatePriceByCartId(cashierCart.getId(), updatePriceDTO.getSaleAmount(), newTotalPrice);
mpOrderInfoService.incrAmount(cashierCart.getOrderId(), newTotalPrice.subtract(oldAmount));
mpOrderDetailService.updatePriceByCartId(cashierCart.getId(), updatePriceDTO.getSaleAmount(), cashierCart.getTotalAmount());
mpOrderInfoService.incrAmount(cashierCart.getOrderId(), cashierCart.getTotalAmount().subtract(oldAmount));
}
return cashierCart;
}