作者 lyh

gx

@@ -20,6 +20,7 @@ use App\Models\RouteMap\RouteMap; @@ -20,6 +20,7 @@ use App\Models\RouteMap\RouteMap;
20 use App\Services\ProjectServer; 20 use App\Services\ProjectServer;
21 use Illuminate\Console\Command; 21 use Illuminate\Console\Command;
22 use Illuminate\Support\Facades\DB; 22 use Illuminate\Support\Facades\DB;
  23 +use Illuminate\Support\Facades\Schema;
23 24
24 /** 25 /**
25 * @remark :更新所有项目的路由 26 * @remark :更新所有项目的路由
@@ -53,12 +54,12 @@ class UpdateRoute extends Command @@ -53,12 +54,12 @@ class UpdateRoute extends Command
53 */ 54 */
54 public function handle(){ 55 public function handle(){
55 $projectModel = new Project(); 56 $projectModel = new Project();
56 - $list = $projectModel->list(['id'=>783]); 57 + $list = $projectModel->list(['id'=>1]);
57 $data = []; 58 $data = [];
58 foreach ($list as $v){ 59 foreach ($list as $v){
59 echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; 60 echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
60 ProjectServer::useProject($v['id']); 61 ProjectServer::useProject($v['id']);
61 - $this->setProductKeyword(); 62 + $this->copyTable();
62 DB::disconnect('custom_mysql'); 63 DB::disconnect('custom_mysql');
63 } 64 }
64 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; 65 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
@@ -344,4 +345,48 @@ class UpdateRoute extends Command @@ -344,4 +345,48 @@ class UpdateRoute extends Command
344 RouteMap::setRoute($v['route'],'product_keyword',$v['id'],569); 345 RouteMap::setRoute($v['route'],'product_keyword',$v['id'],569);
345 } 346 }
346 } 347 }
  348 +
  349 + public function copyTable()
  350 + {
  351 + $sourceTable = 'gl_route_map';
  352 + $destinationTable = 'gl_route_map_copy';
  353 + if (!Schema::hasTable($sourceTable)) {
  354 + $this->error("Source table {$sourceTable} does not exist.");
  355 + return false;
  356 + }
  357 + if (Schema::hasTable($destinationTable)) {
  358 + Schema::dropIfExists($destinationTable);
  359 + }
  360 + $columns = DB::select(DB::raw("SHOW COLUMNS FROM {$sourceTable}"));
  361 + $columnsDefinition = collect($columns)->map(function($column) {
  362 + return $column->Field . ' ' . $column->Type . ($column->Null === 'NO' ? ' NOT NULL' : '') . ($column->Default !== null ? " DEFAULT '" . $column->Default . "'" : '') . ($column->Extra ? ' ' . $column->Extra : '');
  363 + })->implode(', ');
  364 + DB::statement("CREATE TABLE {$destinationTable} ({$columnsDefinition})");
  365 + DB::statement("INSERT INTO {$destinationTable} SELECT * FROM {$sourceTable}");
  366 + $this->info("Table {$sourceTable} has been copied to {$destinationTable} successfully.");
  367 + }
  368 +
  369 +
  370 + /**
  371 + * @remark :routeMap去重
  372 + * @name :routeMapDeduplication
  373 + * @author :lyh
  374 + * @method :post
  375 + * @time :2024/5/28 11:31
  376 + */
  377 + public function routeMapDeduplication(){
  378 + $this->copyTable();
  379 +// $routeMapModel = new RouteMap();
  380 +// $lists = $routeMapModel->list(['source'=>'product_keyword'],'id',['id'],'asc');
  381 +// foreach ($lists as $v){
  382 +// echo date('Y-m-d H:i:s') . '关键字id:'.$v['id'] . PHP_EOL;
  383 +// //查询当前数据详情
  384 +// $info = $routeMapModel->read(['id'=>$v['id']],['id','source_id']);
  385 +// if($info !== false){
  386 +// //删除其他一样的数据
  387 +// $routeMapModel->del(['id'=>['!=',$info['id']],'source'=>'product_keyword','source_id'=>$info['source_id']]);
  388 +// }
  389 +// }
  390 + return true;
  391 + }
347 } 392 }