diff --git a/app/Console/Commands/Test.php b/app/Console/Commands/Test.php index d8d0c01..af4286c 100644 --- a/app/Console/Commands/Test.php +++ b/app/Console/Commands/Test.php @@ -40,7 +40,7 @@ class Test extends Command */ public function handle() { - $shop = Shop::query()->find(1); + $shop = Shop::query()->find(2); $business = BusinessFactory::init()->make($shop->plat_id); $business->setShop($shop); // 下载商品列表 @@ -53,9 +53,9 @@ class Test extends Command // $business->incrQuantity(1); // 订单下载 -// $beginTime = DateTimeUtils::getMicroTime('2022-08-08'); -// $endTime = DateTimeUtils::getMicroTime('2022-08-09'); -// $business->downloadOrdersAndSave($beginTime, $endTime); + $beginTime = DateTimeUtils::getMicroTime('2022-08-22 18:16:18'); + $endTime = DateTimeUtils::getMicroTime('2022-08-22 18:16:20'); + $business->downloadOrdersAndSave($beginTime, $endTime); $this->info('执行测试成功'); } diff --git a/app/Events/BusinessOrdersUpdate.php b/app/Events/BusinessOrdersUpdate.php index 4faa13b..c4025e2 100644 --- a/app/Events/BusinessOrdersUpdate.php +++ b/app/Events/BusinessOrdersUpdate.php @@ -45,10 +45,8 @@ class BusinessOrdersUpdate return false; } if ($this->goodsSku) { - $stock = $this->goodsSku->stock + $this->num; - if ($stock >= 0) { - $this->goodsSku->stock += $this->num; - } else { + $this->goodsSku->stock += $this->num; + if ($this->goodsSku->stock <= 0) { $this->goodsSku->status = 0; } $this->goodsSku->save(); diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php index 28d9b46..31c1b1a 100644 --- a/app/Http/Controllers/Goods/GoodsSkusController.php +++ b/app/Http/Controllers/Goods/GoodsSkusController.php @@ -261,8 +261,9 @@ class GoodsSkusController extends Controller ]); $sku->two_days_ago_num = $update['two_days_ago_num']; $sku->yesterday_num = $update['yesterday_num']; - $sku->num = $update['two_days_ago_num'] + $update['yesterday_num'] + $update['arrived_today_num']; - $sku->stock += ($update['two_days_ago_num'] + $update['yesterday_num'] + $update['arrived_today_num'] - $record->arrived_today_num - $sku->two_days_ago_num - $sku->yesterday_num); + $num = $update['two_days_ago_num'] + $update['yesterday_num'] + $update['arrived_today_num']; + $sku->num = $num; + $sku->stock += ($num - $record->arrived_today_num - $sku->two_days_ago_num - $sku->yesterday_num); $sku->save(); $record->arrived_today_num = $update['arrived_today_num']; $record->save(); diff --git a/app/Listeners/UpdateBusinessGoodsStock.php b/app/Listeners/UpdateBusinessGoodsStock.php index da01881..b8d43bc 100644 --- a/app/Listeners/UpdateBusinessGoodsStock.php +++ b/app/Listeners/UpdateBusinessGoodsStock.php @@ -2,9 +2,9 @@ namespace App\Listeners; +use App\Models\BusinessGoodsSku; use App\Models\Log; use App\Models\Shop; -use App\Services\Business\BusinessFactory; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use App\Events\BusinessOrdersUpdate; @@ -60,7 +60,10 @@ class UpdateBusinessGoodsStock implements ShouldQueue $num = $event->goodsSku->stock; $isIncremental = false; } - BusinessGoodsSkuIncrQuantity::dispatch($shop, $event->businessOrderItem, $num, $isIncremental); + $businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('external_sku_id', $event->businessOrderItem['external_sku_id'])->get(); + foreach ($businessGoodsSkus as $businessGoodsSku) { + BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, $isIncremental); + } } } } diff --git a/database/migrations/2022_07_26_090150_create_goods_skus_table.php b/database/migrations/2022_07_26_090150_create_goods_skus_table.php index 3b0f07a..393aff0 100644 --- a/database/migrations/2022_07_26_090150_create_goods_skus_table.php +++ b/database/migrations/2022_07_26_090150_create_goods_skus_table.php @@ -21,7 +21,7 @@ class CreateGoodsSkusTable extends Migration $table->string('sku_code', 32)->comment('规格编码'); $table->unsignedTinyInteger('status')->default(0)->comment('规格状态(0-下架,1在售,2预警)'); $table->unsignedInteger('num')->default(0)->comment('总量'); - $table->unsignedInteger('stock')->default(0)->comment('库存'); + $table->integer('stock')->default(0)->comment('库存'); $table->unsignedDecimal('cost')->default(0)->comment('成本'); $table->unsignedInteger('two_days_ago_num')->default(0)->comment('2天前库存'); $table->unsignedInteger('yesterday_num')->default(0)->comment('1天前库存');