UpdateKeyword.php 2.3 KB
<?php
/**
 * @remark :
 * @name   :UpdateRoute.php
 * @author :lyh
 * @method :post
 * @time   :2023/11/20 15:07
 */

namespace App\Console\Commands\UpgradeKeyword;

use App\Models\Product\Keyword;
use App\Models\Project\Project;
use App\Models\RouteMap\RouteMap;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;

/**
 * @remark :更新所有项目的路由
 * @name   :UpdateRoute
 * @author :lyh
 * @method :post
 * @time   :2023/11/20 15:08
 */
class UpdateKeyword extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'update_keyword_route';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '升级项目-关键字路由与其他路由重复时,删除关键字';

    /**
     * @remark :统一更新路由
     * @name   :handle
     * @author :lyh
     * @method :post
     * @time   :2023/11/20 15:13
     */
    public function handle(){
        $projectModel = new Project();
        $list = $projectModel->list(['is_upgrade'=>1,'delete_status'=>0]);
        foreach ($list as $v){
            echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
            ProjectServer::useProject($v['id']);
            $this->getRouteMap();
            DB::disconnect('custom_mysql');
        }
        echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
        return true;
    }


    /**
     * @remark :升级项目查看路由是否有重复路由
     * @name   :getRouteMap
     * @author :lyh
     * @method :post
     * @time   :2024/1/4 11:53
     */
    public function getRouteMap(){
        $routeMapModel = new RouteMap();
        $list = $routeMapModel->list(['source'=>'product_keyword']);
        foreach ($list as $k => $v){
            $routeInfo = $routeMapModel->read(['source'=>['!=','product_keyword'],'route'=>$v['route']]);
            if($routeInfo !== false){
                try {
                    $keywordModel = new Keyword();
                    $keywordModel->del(['id'=>$v['source_id']]);
                    $routeMapModel->del(['id'=>$v['id']]);
                }catch (\Exception $e){
                    echo date('Y-m-d H:i:s') . '关键字id:'.$v['source_id'] . PHP_EOL;
                }
            }
        }
        return true;
    }
}