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