diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java index e303a67..f6adc41 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java @@ -694,48 +694,55 @@ public class CartService { continue; } } - TbProductSkuWithBLOBs tbProduct = productSkuMapper.selectByPrimaryKey(Integer.valueOf(cart.getSkuId())); - TbProduct tbProduct1 = tbProductMapper.selectById(Integer.valueOf(tbProduct.getProductId())); - - // 判断商品是否已下架 - if (tbProduct.getIsGrounding().equals(0)) { - JSONObject jsonObject1 = new JSONObject(); - jsonObject1.put("status", "fail"); - jsonObject1.put("msg", "商品已下架:" + tbProduct1.getName()); - jsonObject1.put("data", new ArrayList<>()); - PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true); - continue; - } - - log.info("下单,开始校验库存预警,购物车id:{}", cart.getId()); - CompletableFuture.runAsync(() -> checkWarnLineAndSendMsg(tbProduct, tbProduct1, cart.getNumber())); - - - log.info("开始修改库存,商品id:{},商品名:{}", tbProduct1.getId(), tbProduct1.getName()); - // 修改库存 - try { - // 首次下单扣除库存 - if (StrUtil.isBlank(cart.getOrderId())) { - if (tbProduct1.getIsStock() == 1) { - productService.updateStock(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1); - } else { - productService.updateStockAndNoCheck(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1); - } + TbProductSkuWithBLOBs tbProduct; + if (!"-999".equals(cart.getProductId())) { + tbProduct = productSkuMapper.selectByPrimaryKey(Integer.valueOf(cart.getSkuId())); + TbProduct tbProduct1 = tbProductMapper.selectById(Integer.valueOf(tbProduct.getProductId())); + // 判断商品是否已下架 + if (tbProduct.getIsGrounding().equals(0)) { + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("status", "fail"); + jsonObject1.put("msg", "商品已下架:" + tbProduct1.getName()); + jsonObject1.put("data", new ArrayList<>()); + PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true); + continue; } - } catch (Exception e) { - JSONObject jsonObject1 = new JSONObject(); - jsonObject1.put("status", "fail"); - jsonObject1.put("msg", tbProduct1.getName() + "库存不足"); - jsonObject1.put("data", new ArrayList<>()); - PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true); - continue; + log.info("下单,开始校验库存预警,购物车id:{}", cart.getId()); + CompletableFuture.runAsync(() -> checkWarnLineAndSendMsg(tbProduct, tbProduct1, cart.getNumber())); + + + log.info("开始修改库存,商品id:{},商品名:{}", tbProduct1.getId(), tbProduct1.getName()); + // 修改库存 + try { + // 首次下单扣除库存 + if (StrUtil.isBlank(cart.getOrderId())) { + if (tbProduct1.getIsStock() == 1) { + productService.updateStock(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1); + } else { + productService.updateStockAndNoCheck(tbProduct.getProductId(), tbProduct.getId(), cart.getNumber(), tbProduct1.getIsDistribute() == 1); + } + } + + } catch (Exception e) { + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("status", "fail"); + jsonObject1.put("msg", tbProduct1.getName() + "库存不足"); + jsonObject1.put("data", new ArrayList<>()); + PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), tableCartKey, jsonObject.getString("userId"), true); + continue; + } + saleAmount = saleAmount.add(tbProduct.getSalePrice()); + }else { + tbProduct = null; + saleAmount = saleAmount.add(shopEatTypeInfoDTO.getShopInfo().getTableFee()); + } + totalAmount = totalAmount.add(cart.getTotalAmount()); packAMount = packAMount.add(cart.getPackFee()); originAmount = originAmount.add(cart.getTotalAmount()); - saleAmount = saleAmount.add(tbProduct.getSalePrice()); TbOrderDetail orderDetail = oldOrderDetailMap.get(cart.getOrderId() + cart.getId()); if (orderDetail == null) { @@ -751,7 +758,7 @@ public class CartService { } orderDetail.setProductId(Integer.valueOf(cart.getProductId())); orderDetail.setProductSkuId(Integer.valueOf(cart.getSkuId())); - orderDetail.setProductSkuName(tbProduct.getSpecSnap()); + orderDetail.setProductSkuName(tbProduct == null ? null : tbProduct.getSpecSnap()); orderDetail.setProductName(cart.getName()); orderDetail.setShopId(jsonObject.getInteger("shopId")); orderDetail.setPackAmount(cart.getPackFee()); @@ -915,7 +922,11 @@ public class CartService { for (TbOrderDetail orderDetail : orderDetails) { orderDetail.setOrderId(orderId); - orderDetailMapper.insert(orderDetail); + if (orderDetail.getId() != null) { + mpOrderDetailMapper.updateById(orderDetail); + }else { + mpOrderDetailMapper.insert(orderDetail); + } } List outRecords = new ArrayList<>(); for (int i = 0; i < array.size(); i++) { diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java index 1aaf9dc..643c184 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ProductService.java @@ -889,6 +889,8 @@ public class ProductService { .eq(TbCashierCart::getShopId, choseCountDTO.getShopId()) .eq(TbCashierCart::getProductId, "-999") .eq(TbCashierCart::getSkuId, "-999") + .eq(TbCashierCart::getStatus, "create") + .and(r -> r.eq(TbCashierCart::getUserId, choseCountDTO.getUserId()).or().isNull(TbCashierCart::getUserId)) .eq(TbCashierCart::getUseType, shopEatTypeInfoDTO.getUseType()) .eq(TbCashierCart::getTableId, choseCountDTO.getTableId()); TbCashierCart tbCashierCart = mpCashierCartMapper.selectOne(query);