From 62f5dd446459ba44ef7289eb37b3b235dcc95ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Fri, 28 Apr 2023 10:42:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#10000=20=E7=BB=84=E5=90=88=E5=95=86?= =?UTF-8?q?=E5=93=81=E8=AE=A1=E7=AE=97=E9=94=99=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Goods/GoodsCombinationController.php | 12 +++--------- app/Imports/CombinationGoodsImport.php | 12 +++--------- .../CombinationGoodsStockUpdateListener.php | 12 +++--------- 3 files changed, 9 insertions(+), 27 deletions(-) diff --git a/app/Http/Controllers/Goods/GoodsCombinationController.php b/app/Http/Controllers/Goods/GoodsCombinationController.php index fac5030..2696135 100644 --- a/app/Http/Controllers/Goods/GoodsCombinationController.php +++ b/app/Http/Controllers/Goods/GoodsCombinationController.php @@ -79,17 +79,11 @@ class GoodsCombinationController extends Controller ->whereIn('id', $itemIds) ->pluck('stock', 'id') ->toArray(); - $stock = 0; + $stock = []; foreach ($combinationGoods as $item) { - $num = (int)($skus[$item['item_id']] / $item['item_num']); - if (0 === $stock) { - $stock = $num; - continue; - } - if ($num < $stock) { - $stock = $num; - } + $stock[] = (int)($skus[$item['item_id']] / $item['item_num']); } + $stock = min($stock); $status = $stock ? (5 < $stock ? 1 : 2) : 0; if ($id = $request->input('id')) { $sku = GoodsSku::query()->findOrFail($id); diff --git a/app/Imports/CombinationGoodsImport.php b/app/Imports/CombinationGoodsImport.php index 0e56a56..e836795 100644 --- a/app/Imports/CombinationGoodsImport.php +++ b/app/Imports/CombinationGoodsImport.php @@ -55,17 +55,11 @@ class CombinationGoodsImport implements ToArray, SkipsEmptyRows, WithStartRow ->get(['id', 'external_sku_id', 'stock']) ->toArray(); $skus = ArrayUtils::index($skus, 'external_sku_id'); - $stock = 0; + $stock = []; foreach ($info['item'] as $item) { - $num = (int)($skus[$item['item_code']]['stock'] / $item['item_num']); - if (0 === $stock) { - $stock = $num; - continue; - } - if ($num < $stock) { - $stock = $num; - } + $stock[] = (int)($skus[$item['item_code']]['stock'] / $item['item_num']); } + $stock = min($stock); $status = $stock ? (5 < $stock ? 1 : 2) : 0; $sku = GoodsSku::query()->updateOrCreate( ['external_sku_id' => $info['external_sku_id'], 'is_combination' => 1], diff --git a/app/Listeners/CombinationGoodsStockUpdateListener.php b/app/Listeners/CombinationGoodsStockUpdateListener.php index 816085a..f77a8f8 100644 --- a/app/Listeners/CombinationGoodsStockUpdateListener.php +++ b/app/Listeners/CombinationGoodsStockUpdateListener.php @@ -75,17 +75,11 @@ class CombinationGoodsStockUpdateListener ->with('goodsSkuItem:id,stock') ->where('goods_sku_id', $goodsSkuId) ->get(); - $stock = 0; + $stock = []; foreach ($combinationGoods as $goods) { - $num = $goods['goodsSkuItem']['stock'] / $goods['item_num']; - if (0 === $stock) { - $stock = $num; - continue; - } - if ($num < $stock) { - $stock = $num; - } + $stock[] = (int)($goods['goodsSkuItem']['stock'] / $goods['item_num']); } + $stock = min($stock); GoodsSku::query()->where('id', $goodsSkuId)->update(['stock' => $stock]); $updateIds[] = $goodsSkuId; }