feat: #10000 增加商品下载 转录到本地商品
This commit is contained in:
parent
1f3e502f1b
commit
b0f267c52a
103
app/Console/Commands/BusinessGoodsSkuToLocal.php
Normal file
103
app/Console/Commands/BusinessGoodsSkuToLocal.php
Normal file
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\BusinessGoodsSku;
|
||||
use App\Models\GoodsBrand;
|
||||
use App\Models\GoodsType;
|
||||
use App\Models\Goods;
|
||||
use App\Models\GoodsSku;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class BusinessGoodsSkuToLocal extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'goods_sku:to_local';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = '将已下载的 花富贵儿 的商品保存到本地商品列表(注意: 先在店铺列表页面下载商品)';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$num = 0;
|
||||
BusinessGoodsSku::chunk(100, function ($businessGoodsSkus) use ($num) {
|
||||
foreach ($businessGoodsSkus as $businessGoodsSku) {
|
||||
if (empty($businessGoodsSku['goods_name']) || empty($businessGoodsSku['external_sku_id'])) {
|
||||
continue;
|
||||
}
|
||||
$businessGoodsName = explode(' ', $businessGoodsSku['goods_name']);
|
||||
$count = count($businessGoodsName);
|
||||
if (1 === $count) {
|
||||
continue;
|
||||
} elseif (2 === $count) {
|
||||
// 商品名称 规格名称
|
||||
$brand = 0;
|
||||
$type = '未分类';
|
||||
$goodsName = $businessGoodsName[0];
|
||||
$skuName = $businessGoodsName[1];
|
||||
} elseif (3 === $count) {
|
||||
// 种类 商品名称 规格名称
|
||||
$brand = 0;
|
||||
$type = $businessGoodsName[0];
|
||||
$goodsName = $businessGoodsName[1];
|
||||
$skuName = $businessGoodsName[2];
|
||||
} else {
|
||||
// 品牌 种类 商品名称 规格名称
|
||||
$brand = $businessGoodsName[0];
|
||||
$type = $businessGoodsName[1];
|
||||
$goodsName = $businessGoodsName[2];
|
||||
$skuName = $businessGoodsName[3];
|
||||
foreach ($businessGoodsName as $k => $v) {
|
||||
if ($k > 3) {
|
||||
$skuName .= $v;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($brand) {
|
||||
$goodsBrand = GoodsBrand::firstOrCreate(['name' => $brand]);
|
||||
$brand = $goodsBrand->id;
|
||||
}
|
||||
$goodsType = GoodsType::firstOrCreate(['name' => $type]);
|
||||
[$goodsCode, $skuCode] = explode('_', $businessGoodsSku['external_sku_id']);
|
||||
$goods = [
|
||||
'title' => $goodsName,
|
||||
'type_id' => $goodsType->id,
|
||||
'brand_id' => $brand,
|
||||
'goods_code' => $goodsCode,
|
||||
];
|
||||
$goods = Goods::firstOrCreate($goods);
|
||||
$goodsSku = [
|
||||
'goods_id' => $goods->id,
|
||||
'title' => $skuName,
|
||||
'sku_code' => $skuCode,
|
||||
];
|
||||
GoodsSku::firstOrCreate($goodsSku);
|
||||
++$num;
|
||||
}
|
||||
});
|
||||
$this->info('导入成功: ' . $num);
|
||||
}
|
||||
}
|
||||
@ -22,7 +22,7 @@ class Inventory extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = '定时盘点';
|
||||
protected $description = '定时库存盘点';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user