作者 lyh

gx

... ... @@ -20,6 +20,7 @@ use App\Models\RouteMap\RouteMap;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
/**
* @remark :更新所有项目的路由
... ... @@ -53,12 +54,12 @@ class UpdateRoute extends Command
*/
public function handle(){
$projectModel = new Project();
$list = $projectModel->list(['id'=>783]);
$list = $projectModel->list(['id'=>1]);
$data = [];
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
ProjectServer::useProject($v['id']);
$this->setProductKeyword();
$this->copyTable();
DB::disconnect('custom_mysql');
}
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
... ... @@ -344,4 +345,48 @@ class UpdateRoute extends Command
RouteMap::setRoute($v['route'],'product_keyword',$v['id'],569);
}
}
public function copyTable()
{
$sourceTable = 'gl_route_map';
$destinationTable = 'gl_route_map_copy';
if (!Schema::hasTable($sourceTable)) {
$this->error("Source table {$sourceTable} does not exist.");
return false;
}
if (Schema::hasTable($destinationTable)) {
Schema::dropIfExists($destinationTable);
}
$columns = DB::select(DB::raw("SHOW COLUMNS FROM {$sourceTable}"));
$columnsDefinition = collect($columns)->map(function($column) {
return $column->Field . ' ' . $column->Type . ($column->Null === 'NO' ? ' NOT NULL' : '') . ($column->Default !== null ? " DEFAULT '" . $column->Default . "'" : '') . ($column->Extra ? ' ' . $column->Extra : '');
})->implode(', ');
DB::statement("CREATE TABLE {$destinationTable} ({$columnsDefinition})");
DB::statement("INSERT INTO {$destinationTable} SELECT * FROM {$sourceTable}");
$this->info("Table {$sourceTable} has been copied to {$destinationTable} successfully.");
}
/**
* @remark :routeMap去重
* @name :routeMapDeduplication
* @author :lyh
* @method :post
* @time :2024/5/28 11:31
*/
public function routeMapDeduplication(){
$this->copyTable();
// $routeMapModel = new RouteMap();
// $lists = $routeMapModel->list(['source'=>'product_keyword'],'id',['id'],'asc');
// foreach ($lists as $v){
// echo date('Y-m-d H:i:s') . '关键字id:'.$v['id'] . PHP_EOL;
// //查询当前数据详情
// $info = $routeMapModel->read(['id'=>$v['id']],['id','source_id']);
// if($info !== false){
// //删除其他一样的数据
// $routeMapModel->del(['id'=>['!=',$info['id']],'source'=>'product_keyword','source_id'=>$info['source_id']]);
// }
// }
return true;
}
}
... ...