feat: #100000 代码优化

This commit is contained in:
赵世界 2022-09-15 17:36:36 +08:00
parent 0bc738b575
commit 6d167df49d
4 changed files with 15 additions and 12 deletions

View File

@ -2,7 +2,6 @@
namespace App\Events; namespace App\Events;
use App\Models\BusinessOrderItem;
use App\Models\GoodsSku; use App\Models\GoodsSku;
use Illuminate\Broadcasting\Channel; use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\InteractsWithSockets;
@ -18,7 +17,7 @@ class BusinessOrdersUpdate
use Dispatchable, InteractsWithSockets, SerializesModels; use Dispatchable, InteractsWithSockets, SerializesModels;
public $num; public $num;
public $businessOrderItem; public $businessGoods;
public $goodsSku; public $goodsSku;
/** /**
@ -26,9 +25,9 @@ class BusinessOrdersUpdate
* *
* @return void * @return void
*/ */
public function __construct(BusinessOrderItem $item, $num) public function __construct($item, $num)
{ {
$this->businessOrderItem = $item->toArray(); $this->businessGoods = $item->toArray();
$this->num = $num; $this->num = $num;
$this->updateStock(); $this->updateStock();
} }
@ -36,7 +35,7 @@ class BusinessOrdersUpdate
private function updateStock() private function updateStock()
{ {
try { try {
[$goodsCode, $skuCode] = explode('_', $this->businessOrderItem['external_sku_id']); [$goodsCode, $skuCode] = explode('_', $this->businessGoods['external_sku_id']);
$this->goodsSku = GoodsSku::query()->where('sku_code', $skuCode) $this->goodsSku = GoodsSku::query()->where('sku_code', $skuCode)
->whereHas('goods', function ($query) use ($goodsCode) { ->whereHas('goods', function ($query) use ($goodsCode) {
$query->where('goods_code', $goodsCode); $query->where('goods_code', $goodsCode);

View File

@ -22,13 +22,17 @@ class StockUpdateEvent
/** /**
* Create a new event instance. * Create a new event instance.
* *
* @param $data array|object
*
* @return void * @return void
*/ */
public function __construct($data) public function __construct($data)
{ {
if (is_array($data)) { if (is_array($data)) {
// ids集合
$this->goodsSkus = GoodsSku::query()->whereIn('id', $data)->with(['goods:id,goods_code'])->get(); $this->goodsSkus = GoodsSku::query()->whereIn('id', $data)->with(['goods:id,goods_code'])->get();
} else { } else {
// GoodsSku Elo模型对象
$this->goodsSku = $data; $this->goodsSku = $data;
} }
} }

View File

@ -14,7 +14,7 @@ class BusinessGoodsSkuIncrQuantity implements ShouldQueue
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $shop; public $shop;
public $businessOrderItem; public $businessGoods;
public $num; public $num;
public $isIncremental = true; public $isIncremental = true;
@ -23,10 +23,10 @@ class BusinessGoodsSkuIncrQuantity implements ShouldQueue
* *
* @return void * @return void
*/ */
public function __construct($shop, $businessOrderItem, $num, $isIncremental) public function __construct($shop, $businessGoods, $num, $isIncremental)
{ {
$this->shop = $shop; $this->shop = $shop;
$this->businessOrderItem = $businessOrderItem; $this->businessGoods = $businessGoods;
$this->num = $num; $this->num = $num;
$this->isIncremental = $isIncremental; $this->isIncremental = $isIncremental;
} }
@ -38,8 +38,8 @@ class BusinessGoodsSkuIncrQuantity implements ShouldQueue
*/ */
public function handle() public function handle()
{ {
if ($this->businessOrderItem) { if ($this->businessGoods) {
BusinessFactory::init()->make($this->shop['plat_id'])->setShopWithId($this->shop['id'])->incrQuantity($this->businessOrderItem, $this->num, $this->isIncremental); BusinessFactory::init()->make($this->shop['plat_id'])->setShopWithId($this->shop['id'])->incrQuantity($this->businessGoods, $this->num, $this->isIncremental);
} }
} }
} }

View File

@ -41,7 +41,7 @@ class UpdateBusinessGoodsStock implements ShouldQueue
$log->target_id = $event->goodsSku->id ?? 0; $log->target_id = $event->goodsSku->id ?? 0;
$log->target_field = 'stock'; $log->target_field = 'stock';
$log->user_id = 999; $log->user_id = 999;
$log->message = '未找到' . json_encode($event->businessOrderItem, 256); $log->message = '未找到' . json_encode($event->businessGoods, 256);
$log->save(); $log->save();
return; return;
@ -57,7 +57,7 @@ class UpdateBusinessGoodsStock implements ShouldQueue
foreach ($shops as $shop) { foreach ($shops as $shop) {
$num = $event->goodsSku->stock; $num = $event->goodsSku->stock;
$businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('external_sku_id', $event->businessOrderItem['external_sku_id'])->get(); $businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('external_sku_id', $event->businessGoods['external_sku_id'])->get();
foreach ($businessGoodsSkus as $businessGoodsSku) { foreach ($businessGoodsSkus as $businessGoodsSku) {
BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false); BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false);
} }