From 9d43ce2fc137387c508ba341e984f90f351648b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Thu, 7 Nov 2024 10:44:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=A9=BA=E8=AE=A2=E5=8D=95=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MpCashierCartService.java | 7 ++++++ .../service/MpOrderDetailService.java | 6 +++++ .../cashierservice/service/OrderService.java | 20 +++++++++++++---- .../impl/MpCashierCartServiceImpl.java | 22 +++++++++++++++++++ .../impl/MpOrderDetailServiceImpl.java | 6 +++++ 5 files changed, 57 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MpCashierCartService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MpCashierCartService.java index 6d80520..6b2d24c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MpCashierCartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MpCashierCartService.java @@ -29,5 +29,12 @@ public interface MpCashierCartService extends IService { * @param orderId 订单id */ boolean updateStateByOrderId(TableConstant.OrderInfo.Status status, Integer orderId); + + /** + * 获取购物车信息 + * @return 购物车列表 + */ + List selectCart(String useType, String masterId, Integer orderId, Integer shopId, TableConstant.OrderInfo.Status... statusList); + } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MpOrderDetailService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MpOrderDetailService.java index e24df73..a415f24 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MpOrderDetailService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MpOrderDetailService.java @@ -31,5 +31,11 @@ public interface MpOrderDetailService extends IService { * @return 是否成功 */ boolean removeByCartIds(List cartIds); + + /** + * 根据订单id删除详情 + * @param orderId 订单id + */ + boolean removeByOrderId(String orderId); } 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 6867980..fe7280a 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -657,8 +657,6 @@ public class OrderService { List skuIds = new ArrayList<>(); skuIds.add(cashierCart.getSkuId()); - - cashierCartMapper.deleteByPrimaryKey(cartId); if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { @@ -689,10 +687,10 @@ public class OrderService { tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); }); } - - } + checkTakeOutEmptyAndClear(cashierCart); + if (StrUtil.isNotBlank(cashierCart.getTableId())) { setRedisTableCartInfo(cashierCart.getTableId(), cashierCart.getShopId(), Collections.singletonList(cashierCart), false); } @@ -701,6 +699,20 @@ public class OrderService { return Result.success(CodeEnum.SUCCESS); } + /** + * 检查订单购物车是否为空并删除订单 + */ + private void checkTakeOutEmptyAndClear(TbCashierCart cashierCart) { + if (!TableConstant.OrderInfo.UseType.TAKEOUT.equalsVals(cashierCart.getUseType())) { + return; + } + List cashierCarts = mpCashierCartService.selectCart(cashierCart.getUseType(), cashierCart.getMasterId(), Integer.valueOf(cashierCart.getOrderId()), Integer.valueOf(cashierCart.getShopId())); + if (cashierCarts.isEmpty() && cashierCart.getOrderId() != null) { + mpOrderDetailService.removeByOrderId(cashierCart.getOrderId()); + mpOrderInfoService.removeById(cashierCart.getOrderId()); + } + } + private TbOrderInfo getCurrentOrder(ShopEatTypeInfoDTO eatTypeInfoDTO, String tableId, Object shopId) { // 获取当前台桌最新订单,先付款模式不获取 if (eatTypeInfoDTO.isDineInBefore() || eatTypeInfoDTO.isTakeout()) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpCashierCartServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpCashierCartServiceImpl.java index ba85458..3526584 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpCashierCartServiceImpl.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpCashierCartServiceImpl.java @@ -1,5 +1,9 @@ package com.chaozhanggui.system.cashierservice.service.impl; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ArrayUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chaozhanggui.system.cashierservice.bean.constant.TableConstant; @@ -11,6 +15,7 @@ import com.chaozhanggui.system.cashierservice.service.MpCashierCartService; import com.chaozhanggui.system.cashierservice.service.MpOrderDetailService; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; /** @@ -37,5 +42,22 @@ public class MpCashierCartServiceImpl extends ServiceImpl selectCart(String useType, String masterId, Integer orderId, Integer shopId, TableConstant.OrderInfo.Status... statusList) { + LambdaQueryWrapper query = new LambdaQueryWrapper() + .eq(TbCashierCart::getShopId, shopId) + .eq(TbCashierCart::getUseType, useType) + .eq(TbCashierCart::getMasterId, masterId) + .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime()); + if (orderId != null) { + query.and(q -> q.eq(TbCashierCart::getOrderId, orderId).or().isNull(TbCashierCart::getOrderId)); + } + + if (statusList.length != 0) { + query.in(TbCashierCart::getStatus, Convert.toList(statusList)); + } + return list(query); + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpOrderDetailServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpOrderDetailServiceImpl.java index a3cd624..be5b03c 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpOrderDetailServiceImpl.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/MpOrderDetailServiceImpl.java @@ -44,5 +44,11 @@ public class MpOrderDetailServiceImpl extends ServiceImpl() .in(TbOrderDetail::getCartId, cartIds)); } + + @Override + public boolean removeByOrderId(String orderId) { + return remove(new LambdaQueryWrapper() + .eq(TbOrderDetail::getOrderId, orderId)); + } }