From a9e542f89ba70e6e3fc9aa3cbd93fb41781ee8f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BB=BA=E7=82=8A?= <924182103@qq.com> Date: Thu, 31 Oct 2024 16:33:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Listeners/CombinationGoodsStockUpdateListener.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/Listeners/CombinationGoodsStockUpdateListener.php b/app/Listeners/CombinationGoodsStockUpdateListener.php index 84145c8..63cc708 100644 --- a/app/Listeners/CombinationGoodsStockUpdateListener.php +++ b/app/Listeners/CombinationGoodsStockUpdateListener.php @@ -62,12 +62,13 @@ class CombinationGoodsStockUpdateListener implements ShouldQueue ->with('goodsSku:id,stock') ->whereIn('goods_sku_id', $combinationGoodsIds) ->get(); + $num = !empty($event->num) ? $event->num : 1; foreach ($combinationGoods as $item) { - DB::transaction(function () use ($item, &$updateIds) { + DB::transaction(function () use ($item, &$updateIds, $num) { $goodsSku = GoodsSku::query()->lockForUpdate()->find($item['item_id']); - $stock = $goodsSku->stock - $item['item_num']; + $stock = $goodsSku->stock - $item['item_num'] * $num; //新增逻辑 在线库存同步扣减 - $saleStock = max($goodsSku->sale_stock - $item['item_num'], 0); + $saleStock = max($goodsSku->sale_stock - $item['item_num'] * $num, 0); [$status, $stock] = $this->checkStatusAndStock($goodsSku, $stock, $saleStock); $goodsSku->status = $status; $goodsSku->stock = $stock;