From a853e1ecf46ef9876baf66471f8ad9a30e64b18f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Sat, 17 Sep 2022 01:53:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20#10000=20=E7=9B=98=E7=82=B9=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Imports/InventoryImport.php | 52 +++++++++++++++------------------ 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/app/Imports/InventoryImport.php b/app/Imports/InventoryImport.php index 9ffa4a6..c43bd58 100644 --- a/app/Imports/InventoryImport.php +++ b/app/Imports/InventoryImport.php @@ -8,11 +8,11 @@ use App\Models\GoodsSku; use App\Utils\DateTimeUtils; use Exception; use Illuminate\Support\Collection; -use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Concerns\SkipsEmptyRows; use Maatwebsite\Excel\Concerns\ToCollection; use App\Utils\ArrayUtils; +use App\Events\StockUpdateEvent; class InventoryImport implements ToCollection, SkipsEmptyRows { @@ -36,34 +36,30 @@ class InventoryImport implements ToCollection, SkipsEmptyRows $updateIds = []; $day = DateTimeUtils::getToday(); $dateTime = date('Y-m-d H:i:s'); - DB::beginTransaction(); - try { - foreach ($collection as $row) { - if (!isset($hasGoods[$row[0]])) { - continue; - } - $goodsSku = GoodsSku::query() - ->where('goods_id', $hasGoods[$row[0]]['id']) - ->where('sku_code', $row[4]) - ->first(); - if (empty($goodsSku)) { - Log::warning(json_encode($row, 256) . '=====库存导入未找到'); - continue; - } - $goodsSku->stock = $row[6] + $row[7]; - $goodsSku->save(); - $updateIds[] = $goodsSku->id; - DailyStockRecord::query()->where('sku_id', $goodsSku->id)->where('day', $day)->update([ - 'arrived_today_num' => $row[7], - 'inventory' => $row[6], - 'inventory_time' => $dateTime - ]); + foreach ($collection as $row) { + if (!isset($hasGoods[$row[0]])) { + continue; } - DB::commit(); - } catch (Exception $exception) { - DB::rollBack(); - // 返回错误 - throw $exception; + $goodsSku = GoodsSku::query() + ->where('goods_id', $hasGoods[$row[0]]['id']) + ->where('sku_code', $row[4]) + ->first(); + if (empty($goodsSku)) { + Log::warning(json_encode($row, 256) . '=====库存导入未找到'); + continue; + } + $goodsSku->stock = $row[6] + $row[7]; + if ('下架' === $goodsSku->status) { + $goodsSku->status = 1; + } + $goodsSku->save(); + event(new StockUpdateEvent($goodsSku)); + $updateIds[] = $goodsSku->id; + DailyStockRecord::query()->where('sku_id', $goodsSku->id)->where('day', $day)->update([ + 'arrived_today_num' => $row[7], + 'inventory' => $row[6], + 'inventory_time' => $dateTime + ]); } $onSkuIds = GoodsSku::query() ->where('status', '<>', 0)