From 2a9e26e52431bc2125b1e065042aa3ce8ef3bfe6 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 10 Oct 2024 09:10:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AE=A2=E5=8D=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bean/constant/TableConstant.java | 6 ++++ .../cashierservice/service/OrderService.java | 28 +++++++++++++------ 2 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/bean/constant/TableConstant.java diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/bean/constant/TableConstant.java b/src/main/java/com/chaozhanggui/system/cashierservice/bean/constant/TableConstant.java new file mode 100644 index 0000000..76667c5 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/bean/constant/TableConstant.java @@ -0,0 +1,6 @@ +package com.chaozhanggui.system.cashierservice.bean.constant; + +public interface TableConstant { + + String CART_SEAT_ID = "-999"; +} 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 aa08dbf..162ced2 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chaozhanggui.system.cashierservice.bean.*; +import com.chaozhanggui.system.cashierservice.bean.constant.TableConstant; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.entity.dto.ChoseCountDTO; @@ -795,15 +796,16 @@ public class OrderService { if (orderDetail == null) { orderDetail = new TbOrderDetail(); - // 已经加入修改了库存数量,返还或减少库存 } else { - int subVal = cashierCart.getNumber() - orderDetail.getNum(); - // 减少了数量 - if (subVal < 0) { - productService.incrStock(cashierCart.getProductId(), cashierCart.getSkuId(), Math.abs(subVal)); - } else if (subVal > 0) { - productService.decrStock(cashierCart.getProductId(), cashierCart.getSkuId(), subVal); + if (!TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) { + int subVal = cashierCart.getNumber() - orderDetail.getNum(); + // 减少了数量 + if (subVal < 0) { + productService.incrStock(cashierCart.getProductId(), cashierCart.getSkuId(), Math.abs(subVal)); + } else if (subVal > 0) { + productService.decrStock(cashierCart.getProductId(), cashierCart.getSkuId(), subVal); + } } } @@ -827,13 +829,17 @@ public class OrderService { saleAmount = saleAmount.add(tbProduct.getSalePrice()); } + if (TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) { + saleAmount = saleAmount.add(shopInfo.getTableFee()); + } + orderDetail.setCreateTime(new Date()); orderDetail.setNum(cashierCart.getNumber()); orderDetail.setPrice(cashierCart.getSalePrice()); orderDetail.setPriceAmount(cashierCart.getTotalAmount()); orderDetail.setProductId(Integer.valueOf(cashierCart.getProductId())); orderDetail.setProductSkuId(Integer.valueOf(cashierCart.getSkuId())); - orderDetail.setProductSkuName(tbProduct.getSpecSnap()); + orderDetail.setProductSkuName(tbProduct == null ? null : tbProduct.getSpecSnap()); orderDetail.setProductName(cashierCart.getName()); orderDetail.setShopId(orderVo.getShopId()); orderDetail.setStatus("unpaid"); @@ -845,8 +851,12 @@ public class OrderService { } orderDetails.add(orderDetail); + + // 库存预警校验 - CompletableFuture.runAsync(() -> checkWarnLineAndSendMsg(tbProduct, product, Integer.valueOf(cashierCart.getShopId()), cashierCart.getNumber())); + if (TableConstant.CART_SEAT_ID.equals(cashierCart.getProductId())) { + CompletableFuture.runAsync(() -> checkWarnLineAndSendMsg(tbProduct, product, Integer.valueOf(cashierCart.getShopId()), cashierCart.getNumber())); + } } mpCashierCartService.updateBatchById(list);