Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
ddcd5f2c30
|
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue