5 changed files with 5 additions and 165 deletions
-
2app/Admin/Controllers/v3/GoodsNewController.php
-
160app/Console/Commands/MigrateGoods.php
-
2app/Console/Commands/MigrateOrderStatistics.php
-
4app/Console/Commands/MigrateStore.php
-
2app/Models/v3/Store.php
@ -1,160 +0,0 @@ |
|||
<?php |
|||
|
|||
namespace App\Console\Commands; |
|||
|
|||
use Illuminate\Console\Command; |
|||
use Illuminate\Support\Facades\DB; |
|||
use Illuminate\Support\Facades\Schema; |
|||
|
|||
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() |
|||
{ |
|||
$oldTableName = 'ims_cjdc_goods_new'; |
|||
$oldSpecTableName = 'ims_cjdc_spec_combination_new'; |
|||
$oldStoreTableName = 'ims_cjdc_store_new'; |
|||
|
|||
$newTableName = 'lanzu_goods_new'; |
|||
$newBannerTableName = 'lanzu_goods_banners_new'; |
|||
|
|||
// 判断表是否存在
|
|||
if(!Schema::hasTable($oldTableName)){ |
|||
var_dump('旧商品表不存在'); |
|||
return 0; |
|||
} |
|||
if(!Schema::hasTable($oldSpecTableName)){ |
|||
var_dump('旧规格表不存在'); |
|||
return 0; |
|||
} |
|||
if(!Schema::hasTable($oldStoreTableName)){ |
|||
var_dump('旧的店铺表不存在'); |
|||
return 0; |
|||
} |
|||
if(!Schema::hasTable($newTableName)){ |
|||
var_dump('新商品表不存在'); |
|||
return 0; |
|||
} |
|||
if(!Schema::hasTable($newBannerTableName)){ |
|||
var_dump('新商品的banners表不存在'); |
|||
return 0; |
|||
} |
|||
|
|||
$oldData = DB::table($oldTableName)->orderBy('id','asc')->get(); |
|||
$oldStoreData = DB::table($oldStoreTableName)->pluck('market_id','id'); |
|||
$bar = $this->output->createProgressBar(count($oldData)); |
|||
$bar->start(); |
|||
$startTime = time(); |
|||
$total = 0; |
|||
$error = []; |
|||
foreach ($oldData as $value){ |
|||
$goodsId = $value->id; |
|||
// 判断店铺是否存在,如果商品的店铺不在,则不存这个商品
|
|||
$storeExist = DB::table($oldStoreTableName)->where('id',$value->store_id)->exists(); |
|||
if(!$storeExist){ |
|||
continue; |
|||
} |
|||
$goodsData =[ |
|||
// 'id'=>$value->id,
|
|||
'market_id' => $oldStoreData[$value->store_id], |
|||
'store_id'=>$value->store_id, |
|||
'on_sale'=> $value->is_show == 1 ? 1 : 0, |
|||
'sort'=>$value->num, |
|||
'price'=>$value->money, |
|||
'original_price'=> ($value->money2 < $value->money)?$value->money:$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, |
|||
|
|||
'content'=> strip_tags($value->content), |
|||
'details'=> strip_tags($value->details), |
|||
|
|||
'created_at' => time(), |
|||
'updated_at' => time(), |
|||
]; |
|||
$specs = DB::table($oldSpecTableName)->where('good_id',$goodsId)->get(); |
|||
if(count($specs) > 0){ |
|||
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($newTableName)->insertGetId($newData); |
|||
|
|||
if(!$id){ |
|||
$error[] = ['id'=>$goodsId]; |
|||
break; |
|||
} |
|||
$newBanner['goods_id'] = $id; |
|||
DB::table($newBannerTableName)->insertGetId($newBanner); |
|||
$total++; |
|||
} |
|||
}else{ |
|||
$newData = $goodsData; |
|||
$res= $id = DB::table($newTableName)->insertGetId($newData); |
|||
if(!$res){ |
|||
$error[] = ['id'=>$goodsId]; |
|||
break; |
|||
} |
|||
$newBanner['goods_id'] = $id; |
|||
DB::table($newBannerTableName)->insertGetId($newBanner); |
|||
$total++; |
|||
} |
|||
$bar->advance(); |
|||
} |
|||
|
|||
$bar->finish(); |
|||
var_dump([time()-$startTime]); |
|||
var_dump($total); |
|||
var_dump($error); |
|||
return 0; |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue