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);