diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index b7e497f..06f1370 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -31,6 +31,7 @@ import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.*; +import com.fasterxml.jackson.core.io.BigDecimalParser; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -238,15 +239,23 @@ public class OrderService { } } + + String finalMasterId = masterId; LambdaQueryWrapper cartQuery = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, shopId) - .in(TbCashierCart::getStatus, "create") - .eq(TbCashierCart::getId, cartId); + .eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType()) + .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime()) + .and(r -> r.eq(TbCashierCart::getMasterId, finalMasterId).or().isNull(TbCashierCart::getMasterId).or().eq(TbCashierCart::getMasterId, "")) + .in(TbCashierCart::getStatus, "create"); if (productId != null) { cartQuery.eq(TbCashierCart::getProductId, productId) .eq(TbCashierCart::getSkuId, skuId); } + if (cartId != null) { + cartQuery.eq(TbCashierCart::getId, cartId); + } + TbCashierCart cart = mpCashierCartMapper.selectOne(cartQuery); // 校验是否是代客下单往期订单 @@ -389,7 +398,7 @@ public class OrderService { cashierCart.setPackFee(BigDecimal.ZERO); } else { if (!isSeatCart) { - cashierCart.setPackFee(number.multiply(product.getPackFee())); + cashierCart.setPackFee(number.multiply(product == null ? BigDecimal.ZERO : product.getPackFee())); } cashierCart.setTotalAmount(cashierCart.getTotalAmount().add(cashierCart.getPackFee()));