2 changed files with 197 additions and 12 deletions
@ -0,0 +1,143 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Console\Commands; |
||||
|
|
||||
|
use Illuminate\Console\Command; |
||||
|
use Illuminate\Support\Facades\DB; |
||||
|
|
||||
|
class MigrateGoods extends Command |
||||
|
{ |
||||
|
/** |
||||
|
* The name and signature of the console command. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $signature = 'migrateData:goods'; |
||||
|
|
||||
|
/** |
||||
|
* The console command description. |
||||
|
* |
||||
|
* @var string |
||||
|
*/ |
||||
|
protected $description = 'Command 迁移商品数据'; |
||||
|
|
||||
|
/** |
||||
|
* Create a new command instance. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function __construct() |
||||
|
{ |
||||
|
parent::__construct(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Execute the console command. |
||||
|
* |
||||
|
* @return int |
||||
|
*/ |
||||
|
public function handle() |
||||
|
{ |
||||
|
// 如果表不存在则创建
|
||||
|
// if(!Schema::hasTable('lanzu_store_users')){
|
||||
|
// Schema::create('lanzu_store_users',function (Blueprint $table){
|
||||
|
// $table->id();
|
||||
|
// });
|
||||
|
// }
|
||||
|
$specData = [ |
||||
|
'克' => '净含量', |
||||
|
'斤' => '净含量', |
||||
|
'两' => '净含量', |
||||
|
'只' => '净含量', |
||||
|
'份' => '净含量', |
||||
|
'g' => '净含量', |
||||
|
'l' => '净含量', |
||||
|
'ml' => '净含量', |
||||
|
'ML' => '净含量', |
||||
|
'L' => '净含量', |
||||
|
'个' => '净含量', |
||||
|
'条' => '净含量', |
||||
|
'公分' => '净含量', |
||||
|
'边' => '净含量', |
||||
|
'包' => '净含量', |
||||
|
'辣' => '口味', |
||||
|
'馅' => '馅料', |
||||
|
'mm' => '尺寸' |
||||
|
]; |
||||
|
$oldData = DB::table('ims_cjdc_goods_new')->get(); |
||||
|
$bar = $this->output->createProgressBar(count($oldData)); |
||||
|
$bar->start(); |
||||
|
$startTime = time(); |
||||
|
$total = 0; |
||||
|
foreach ($oldData as $value){ |
||||
|
$goodsData =[ |
||||
|
// 'id'=>$value->id,
|
||||
|
'market_id'=>$value->market_id, |
||||
|
'store_id'=>$value->store_id, |
||||
|
'on_sale'=> $value->is_show == 1 ? 1 : 0, |
||||
|
'sort'=>$value->num, |
||||
|
'price'=>$value->money, |
||||
|
'original_price'=>$value->money2, |
||||
|
'vip_price'=>$value->vip_money, |
||||
|
'sales'=>$value->sales, |
||||
|
'start_num'=>$value->start_num, |
||||
|
'restrict_num'=>$value->restrict_num, |
||||
|
'is_infinite'=> $value->is_max == 1 ? 1 :0, |
||||
|
'inventory'=>$value->inventory, |
||||
|
'name'=>$value->name, |
||||
|
'cover_img'=>$value->logo, |
||||
|
'goods_unit'=>$value->good_unit, |
||||
|
|
||||
|
'spec'=>$value->spec, |
||||
|
|
||||
|
'content'=>$value->content, |
||||
|
'details'=>$value->details, |
||||
|
]; |
||||
|
$specs = DB::table('ims_cjdc_spec_combination_new')->where('good_id',$value->id)->get(); |
||||
|
if(!empty($specs)){ |
||||
|
foreach($specs as $vs){ |
||||
|
$spec = ['spec_key'=>'净含量','spec_value'=>$vs->combination]; |
||||
|
if(strstr($vs->combination,'辣')){ |
||||
|
$spec['spec_key'] = '口味'; |
||||
|
}else if(strstr($vs->combination,'馅')){ |
||||
|
$spec['spec_key'] = '馅料'; |
||||
|
}else if(strstr($vs->combination,'mm')){ |
||||
|
$spec['spec_key'] = '尺寸'; |
||||
|
} |
||||
|
$goodsData['spec'] = json_encode($spec); |
||||
|
$newData = $goodsData; |
||||
|
$newBanner = [ |
||||
|
'type' =>1, |
||||
|
'path' =>$value->logo, |
||||
|
'created_at' =>time(), |
||||
|
'updated_at' =>time(), |
||||
|
]; |
||||
|
$id = DB::table('lanzu_goods_new')->insertGetId($newData); |
||||
|
$newBanner['goods_id'] = $id; |
||||
|
DB::table('lanzu_goods_banners_new')->insertGetId($newBanner); |
||||
|
$total++; |
||||
|
if($total == 2){ |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
}else{ |
||||
|
$newData = $goodsData; |
||||
|
$id = DB::table('lanzu_goods_new')->insertGetId($newData); |
||||
|
$newBanner['goods_id'] = $id; |
||||
|
DB::table('lanzu_goods_banners_new')->insertGetId($newBanner); |
||||
|
$total++; |
||||
|
if($total == 2){ |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$bar->advance(); |
||||
|
} |
||||
|
|
||||
|
$bar->finish(); |
||||
|
echo '\r\n '; |
||||
|
echo time()-$startTime; |
||||
|
echo '\r\n '.$total; |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue