businessOrderItem = $item; $this->num = $num; } /** * Handle the event. * * @param Registered $event * @return void */ public function handle(Registered $event) { $shops = Shop::query()->where('id', '<>', $this->businessOrderItem->shop_id)->where('status', 1)->get(['id', 'plat_id']); [$goodsCode, $skuCode] = explode('_', $this->businessOrderItem->external_sku_id); $goodsSku = GoodsSku::query()->where('sku_code', $skuCode) ->with(['goods' => function ($query) use ($goodsCode) { $query->where('goods_code', $goodsCode); }]) ->first(); if ($goodsSku) { $goodsSku->stock += $this->num; $goodsSku->save(); foreach ($shops as $shop) { BusinessFactory::init()->make($shop['plat_id'])->setShopId($shop['id'])->incrQuantity($this->businessOrderItem, $this->num, true, $goodsSku); } } else { $log = new Log(); $log->module = 'goods'; $log->action = 'PATCH'; $log->target_type = 'goods_sku'; $log->target_id = $goodsSku->id; $log->target_field = 'stock'; $log->user_id = $this->businessOrderItem->shop_id; $log->message = ($this->businessOrderItem->external_sku_id ?: '商品') . '未找到'; $log->save(); } } }