From 109b047a88a77393f1141fd0b064321adc17d8a5 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 5 Jul 2024 14:11:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=A9=BA=E8=B4=AD=E7=89=A9=E8=BD=A6?= =?UTF-8?q?=E8=BF=94=E8=BF=98=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/OrderService.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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 ef07d6a..1c2f5f4 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -113,14 +113,17 @@ public class OrderService { return Result.fail(CodeEnum.PRODUCTSKUERROR); } + String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cartId); if("1".equals(product.getIsStock().toString())){ if ("1".equals(product.getIsDistribute().toString())) { - if(product.getStockNumber()-number<0){ + if((message == null && product.getStockNumber()-number<0) || + (product.getStockNumber()-number<0 && message != null && Integer.parseInt(message) < number)){ return Result.fail(CodeEnum.STOCKERROR); } } else if (product.getId().intValue()==Integer.valueOf(skuWithBLOBs.getProductId()).intValue()){ - if(skuWithBLOBs.getStockNumber()-number<0){ + if((message == null && skuWithBLOBs.getStockNumber()-number<0) || + (skuWithBLOBs.getStockNumber()-number<0 && message != null && Integer.parseInt(message) < number)){ return Result.fail(CodeEnum.STOCKERROR); } } @@ -223,6 +226,7 @@ public class OrderService { } + // skuWithBLOBs.setStockNumber(skuWithBLOBs.getStockNumber()-number); skuWithBLOBs.setUpdatedAt(System.currentTimeMillis()); tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs); @@ -792,6 +796,12 @@ public class OrderService { List productSkuPos=new ArrayList<>(); List skuIds=new ArrayList<>(); for (TbCashierCart cashierCart : list) { + // 数量减少, 返还库存 + String message = redisUtil.getMessage(RedisCst.ORDER_PRODUCT_NUM + cashierCart.getId()); + + if (message != null) { + productService.incrStock(cashierCart.getProductId(), cashierCart.getSkuId(), Integer.parseInt(message)); + } if (StringUtils.isNotEmpty(cashierCart.getOrderId())) { orderId = Integer.valueOf(cashierCart.getOrderId()); @@ -820,6 +830,8 @@ public class OrderService { tbProductSkuMapper.batchStockNum(productSkuPos); } + + return Result.success(CodeEnum.SUCCESS); }