From 0e23f94e8080d4ad261b5dee631d6f0475881360 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 23 Sep 2024 09:51:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8F=AB=E5=8F=B7=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A1=BA=E5=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/app/TbCallServiceImpl.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/app/TbCallServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/app/TbCallServiceImpl.java index 518f5e1d..12608e30 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/app/TbCallServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/app/TbCallServiceImpl.java @@ -324,10 +324,47 @@ public class TbCallServiceImpl implements TbCallService { case 3: callQueue.setPassTime(DateUtil.date()); TbShopInfo shopInfo = shopInfoRepository.findById(callQueue.getShopId()).orElse(null); + if (shopInfo == null) { + throw new BadRequestException("店铺信息不存在"); + } + if(StrUtil.isBlank(callQueue.getOpenId()) && callQueue.getSubState() != 1) { break; } + TbCallTable callTable = callTableService.getById(callQueue.getCallTableId()); + Byte isPostpone = callTable.getIsPostpone(); + Integer postponeNum = callTable.getPostponeNum(); + + // 判断是否需要顺延 + if (isPostpone != null && isPostpone == 1 && postponeNum != null && postponeNum > 0) { + // 查询当前桌以及顺延桌数 + List current = callQueueService.lambdaQuery() + .eq(TbCallQueue::getCallTableId, callQueue.getCallTableId()) + .eq(TbCallQueue::getCreateDay, DateUtil.today()) + .eq(TbCallQueue::getShopId, callTable.getShopId()) + .ge(TbCallQueue::getId, callQueue.getId()) + .orderByAsc(TbCallQueue::getCreateTime) + .page(new Page<>(1, postponeNum + 1)) // 获取当前桌和顺延的桌数 + .getRecords(); + + // 确保有足够的桌可以顺延 + if (current.size() > 1) { + // 获取当前桌以及顺延桌 + TbCallQueue currentTable = BeanUtil.copyProperties(current.get(0), TbCallQueue.class); + // 顺延替换信息,将每一张顺延桌向前移动 + for (int i = 0; i < current.size() - 1; i++) { + exchangeCallQueueInfo(current.get(i), current.get(i + 1)); // 当前桌替换为顺延桌 + } + + exchangeCallQueueInfo(current.get(current.size() - 1), currentTable); + callQueue = current.get(current.size() - 1); + + // 更新数据库中的桌号信息 + callQueueService.updateBatchById(current); + } + } + List current = callQueueService.lambdaQuery() .eq(TbCallQueue::getCallTableId, callQueue.getCallTableId()) .eq(TbCallQueue::getCreateDay, DateUtil.today()) @@ -351,6 +388,23 @@ public class TbCallServiceImpl implements TbCallService { return callQueueService.updateById(callQueue); } + private void exchangeCallQueueInfo(TbCallQueue setCallQueue, TbCallQueue copyCallQueue) { + setCallQueue.setOpenId(copyCallQueue.getOpenId()); + setCallQueue.setState(copyCallQueue.getState()); + setCallQueue.setSubState(copyCallQueue.getSubState()); + setCallQueue.setCreateTime(copyCallQueue.getCreateTime()); + setCallQueue.setName(copyCallQueue.getName()); + setCallQueue.setNote(copyCallQueue.getNote()); + setCallQueue.setCallNum(copyCallQueue.getCallNum()); + setCallQueue.setCallTime(copyCallQueue.getCallTime()); + setCallQueue.setCallCount(copyCallQueue.getCallCount()); + setCallQueue.setPassTime(copyCallQueue.getPassTime()); + setCallQueue.setCancelTime(copyCallQueue.getCancelTime()); + setCallQueue.setUserId(copyCallQueue.getUserId()); + setCallQueue.setConfirmTime(copyCallQueue.getConfirmTime()); + + } + @Override public Object get(Integer page, Integer size, Integer shopId, Integer callTableId, Integer state) { LambdaQueryWrapper query = new LambdaQueryWrapper() From 0fdae3792467790cf72247a533f88036c2e079a7 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Mon, 23 Sep 2024 09:56:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BB=A3=E5=AE=A2=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E4=BA=BA=E6=95=B0=E5=A2=9E=E5=8A=A0=E7=94=A8?= =?UTF-8?q?=E9=A4=90=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/service/impl/shopimpl/TbShopTableServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 9d5b202e..259b7e78 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 @@ -1603,11 +1603,13 @@ public class TbShopTableServiceImpl implements TbShopTableService { tbCashierCart.setPackFee(BigDecimal.ZERO); tbCashierCart.setNumber(choseCountDTO.getNum()); tbCashierCart.setTotalNumber(choseCountDTO.getNum()); + tbCashierCart.setUseType(choseCountDTO.getUseType()); tbCashierCartMapper.insert(tbCashierCart); } else { tbCashierCart.setTotalAmount(new BigDecimal(choseCountDTO.getNum()).multiply(shopInfo.getTableFee())); tbCashierCart.setNumber(choseCountDTO.getNum()); tbCashierCart.setTotalNumber(choseCountDTO.getNum()); + tbCashierCart.setUseType(choseCountDTO.getUseType()); tbCashierCartMapper.updateById(tbCashierCart); }