From 4e5c560d95cdc7486b69cb4eeffc48a367c7a8ae Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 20 Aug 2024 18:11:13 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E4=BC=9A=E5=91=98fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/dto/shoptable/CreateOrderDTO.java | 1 - .../cn/ysk/cashier/enums/TableStateEnum.java | 2 +- .../impl/shopimpl/TbShopTableServiceImpl.java | 98 +++++++++++-------- 3 files changed, 60 insertions(+), 41 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java index 780ee187..f8fad8e0 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/CreateOrderDTO.java @@ -15,6 +15,5 @@ public class CreateOrderDTO { @NotEmpty private Long tableId; private String note; - private boolean postPay; private boolean print; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java b/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java index 06805e2c..cad80ef3 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/enums/TableStateEnum.java @@ -2,7 +2,7 @@ package cn.ysk.cashier.enums; public enum TableStateEnum { IDLE("idle"), - CLOSED("closed"), PAYING("paying"); + CLOSED("closed"), PAYING("paying"), PENDING("pending"); private String state = "closed"; TableStateEnum(String state) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 65d4cec8..9486d0f7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -419,14 +419,19 @@ public class TbShopTableServiceImpl implements TbShopTableService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getTableId, tableId) .eq(TbCashierCart::getStatus, "create") - .eq(TbCashierCart::getShopId, shopId); + .eq(TbCashierCart::getMasterId, masterId) + .eq(TbCashierCart::getShopId, shopId) + .and(query -> { + query.eq(TbCashierCart::getMasterId, masterId).or() + .isNull(TbCashierCart::getMasterId); + }); - if (vipUserId != null) { - queryWrapper.eq(TbCashierCart::getUserId, vipUserId); - }else { - queryWrapper.eq(TbCashierCart::getMasterId, masterId); - queryWrapper.isNull(TbCashierCart::getUserId); - } +// if (vipUserId != null) { +// queryWrapper.eq(TbCashierCart::getUserId, vipUserId); +// }else { +// queryWrapper.eq(TbCashierCart::getMasterId, masterId); +// queryWrapper.isNull(TbCashierCart::getUserId); +// } com.baomidou.mybatisplus.extension.plugins.pagination.Page cartPage = cashierCartMapper .selectPage(new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page, size), queryWrapper); @@ -462,13 +467,17 @@ public class TbShopTableServiceImpl implements TbShopTableService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getTableId, packCartDTO.getTableId()) .eq(TbCashierCart::getShopId, packCartDTO.getShopId()) - .eq(TbCashierCart::getStatus, "create"); + .eq(TbCashierCart::getStatus, "create") + .and(query -> { + query.eq(TbCashierCart::getMasterId, packCartDTO.getMasterId()).or() + .isNull(TbCashierCart::getMasterId); + }); - if (packCartDTO.getVipUserId() != null) { - queryWrapper.eq(TbCashierCart::getUserId, packCartDTO.getVipUserId()); - } else { - queryWrapper.isNull(TbCashierCart::getUserId); - } +// if (packCartDTO.getVipUserId() != null) { +// queryWrapper.eq(TbCashierCart::getUserId, packCartDTO.getVipUserId()); +// } else { +// queryWrapper.isNull(TbCashierCart::getUserId); +// } List tbCashierCarts = cashierCartMapper.selectList(queryWrapper); tbCashierCarts.forEach(item -> { @@ -687,7 +696,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { String day = DateUtils.getDay(); JSONObject jsonObject = new JSONObject(); String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + tableId; - String userCode = redisTemplate.opsForValue().get(key); + String userCode = redisTemplate.opsForValue().get(key); if (StringUtils.isEmpty(userCode) || "null".equals(userCode) || "#null".equals(userCode)) { String code = "#" + generateOrderCode(day, "pc", String.valueOf(shopId)); @@ -706,13 +715,18 @@ public class TbShopTableServiceImpl implements TbShopTableService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, createOrderDTO.getShopId()) .eq(TbCashierCart::getTableId, createOrderDTO.getTableId()) - .eq(TbCashierCart::getStatus, "create"); - if (createOrderDTO.getVipUserId() != null) { - queryWrapper.eq(TbCashierCart::getUserId, createOrderDTO.getVipUserId()); - }else { - queryWrapper.eq(TbCashierCart::getMasterId, createOrderDTO.getMasterId()) - .isNull(TbCashierCart::getUserId); - } + .eq(TbCashierCart::getStatus, "create") + .and(query -> { + query.eq(TbCashierCart::getMasterId, createOrderDTO.getMasterId()) + .or(). + isNull(TbCashierCart::getMasterId); + }); +// if (createOrderDTO.getVipUserId() != null) { +// queryWrapper.eq(TbCashierCart::getUserId, createOrderDTO.getVipUserId()); +// }else { +// queryWrapper.eq(TbCashierCart::getMasterId, createOrderDTO.getMasterId()) +// .isNull(TbCashierCart::getUserId); +// } List cashierCarts = cashierCartMapper .selectList(queryWrapper); if (cashierCarts.isEmpty()) { @@ -791,7 +805,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { orderInfo.setTableId(String.valueOf(createOrderDTO.getTableId())); orderInfo.setSendType("table"); orderInfo.setOrderType("cash"); - orderInfo.setUseType(createOrderDTO.isPostPay() ? "postPay" : "afterPay"); orderInfo.setShopId(createOrderDTO.getShopId().toString()); orderInfo.setRefundAble(1); orderInfo.setTradeDay(day); @@ -834,14 +847,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { // 推送耗材信息 pushConsMsg(orderInfo, cashierCarts); - // 后付款订单,修改台桌状态并打票 - if (createOrderDTO.isPostPay()) { - mpShopTableMapper.update(null, new LambdaUpdateWrapper() - .eq(TbShopTable::getQrcode, createOrderDTO.getTableId()) - .set(TbShopTable::getStatus, "opening")); - - rabbitMsgUtils.printTicket(String.valueOf(orderId)); - } return orderInfo; } @@ -859,15 +864,21 @@ public class TbShopTableServiceImpl implements TbShopTableService { throw new BadRequestException("取消挂起订单id不为空"); } queryWrapper.eq(TbCashierCart::getOrderId, pendingDTO.getOrderId()); + }else { queryWrapper.eq(TbCashierCart::getTableId, pendingDTO.getTableId()) - .eq(TbCashierCart::getStatus, "create"); - if (pendingDTO.getVipUserId() != null) { - queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId()); - }else { - queryWrapper.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()) - .isNull(TbCashierCart::getUserId); - } + .eq(TbCashierCart::getStatus, "create") + .eq(TbCashierCart::getTableId, pendingDTO.getTableId()) + .and(query -> { + query.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()).or() + .isNull(TbCashierCart::getMasterId); + }); +// if (pendingDTO.getVipUserId() != null) { +// queryWrapper.eq(TbCashierCart::getUserId, pendingDTO.getVipUserId()); +// }else { +// queryWrapper.eq(TbCashierCart::getMasterId, pendingDTO.getMasterId()) +// .isNull(TbCashierCart::getUserId); +// } } List cashierCarts = cashierCartMapper @@ -909,6 +920,16 @@ public class TbShopTableServiceImpl implements TbShopTableService { cashierCart.setStatus(pendingDTO.getIsPending() ? "refund" : "create"); cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper() .eq(TbCashierCart::getOrderId, orderId)); + + + // 后付款订单,修改台桌状态并打票 + if (pendingDTO.getIsPending()) { + mpShopTableMapper.update(null, new LambdaUpdateWrapper() + .eq(TbShopTable::getQrcode, cashierCart.getTableId()) + .set(TbShopTable::getStatus, TableStateEnum.PENDING.getState())); + + rabbitMsgUtils.printTicket(String.valueOf(orderId)); + } return orderInfoMapper.selectById(orderId); } @@ -1046,8 +1067,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { public Object updateVip(UpdateVipDTO updateVipDTO) { LambdaUpdateWrapper queryWrapper = new LambdaUpdateWrapper<>(); queryWrapper.eq(TbCashierCart::getTableId, updateVipDTO.getTableId()) - .eq(TbCashierCart::getShopId, updateVipDTO.getShopId()) - .eq(TbCashierCart::getMasterId, updateVipDTO.getMasterId()); + .eq(TbCashierCart::getShopId, updateVipDTO.getShopId()); if (updateVipDTO.getType().equals(0)) { queryWrapper.set(TbCashierCart::getUserId, null);