From 5b87ebcd22cbc5987361ba56be014621f0e4690b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Thu, 15 Sep 2022 17:55:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#10000=20=E5=BA=97=E9=93=BA=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=9B=B4=E6=96=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Business/BusinessGoodsSkusController.php | 4 ++-- app/Listeners/UpdateBusinessGoodsStock.php | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Business/BusinessGoodsSkusController.php b/app/Http/Controllers/Business/BusinessGoodsSkusController.php index f7d5b95..021ee0d 100644 --- a/app/Http/Controllers/Business/BusinessGoodsSkusController.php +++ b/app/Http/Controllers/Business/BusinessGoodsSkusController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\Business; -use App\Events\StockUpdateEvent; +use App\Events\BusinessOrdersUpdate; use App\Http\Controllers\Controller; use App\Http\Resources\BusinessGoodsSkuResource; use App\Models\BusinessGoodsSku; @@ -87,7 +87,7 @@ class BusinessGoodsSkusController extends Controller if (empty($sku)) { $this->setValidatorFailResponse('未找到对应的商品,请核实后再次同步或删除此平台商品'); } else { - event(new StockUpdateEvent($sku)); + event(new BusinessOrdersUpdate($businessGoodsSku, 0)); $this->res['message'] = '库存同步请求发送成功,具体结果查看日志'; } return response($this->res, $this->res['httpCode']); diff --git a/app/Listeners/UpdateBusinessGoodsStock.php b/app/Listeners/UpdateBusinessGoodsStock.php index b89e99b..6b2b8a9 100644 --- a/app/Listeners/UpdateBusinessGoodsStock.php +++ b/app/Listeners/UpdateBusinessGoodsStock.php @@ -49,7 +49,12 @@ class UpdateBusinessGoodsStock implements ShouldQueue if ('下架' === $event->goodsSku->status) { return; } - $shops = Shop::query()->whereNotIn('status', [0, 3])->get(['id', 'plat_id']); + $builder = Shop::query()->whereNotIn('status', [0, 3]); + // 非订单影响库存变更,只更新本店铺下商品 + if (!isset($event->businessGoods['business_order_id'])) { + $builder->where('id', $event->businessGoods['shop_id']); + } + $shops = $builder->get(['id', 'plat_id']); if (empty($shops)) { LogFile::info('可操作店铺为空'); return;