<?php
/**
 * Created by PhpStorm.
 * User: zhl
 * Date: 2023/2/7
 * Time: 17:58
 */
namespace App\Console\Commands\Test;

use App\Helper\Common;
use App\Models\Blog\Blog;
use App\Models\Devops\ServerConfig;
use App\Models\Domain\DomainInfo;
use App\Models\File\File;
use App\Models\File\File as FileModel;
use App\Models\File\Image;
use App\Models\File\Image as ImageModel;
use App\Models\Manage\BelongingGroup;
use App\Models\Manage\Dept;
use App\Models\Manage\EntryPosition;
use App\Models\Manage\ManageHr;
use App\Models\Nav\BNav;
use App\Models\Nav\BNavGroup;
use App\Models\Product\Keyword;
use App\Models\Product\Product;
use App\Models\Project\DeployOptimize;
use App\Models\Project\MinorLanguages;
use App\Models\Project\Project;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BCustomTemplate;
use App\Models\Template\BTemplate;
use App\Models\Template\BTemplateCom;
use App\Models\Template\BTemplateCommon;
use App\Models\Template\Setting;
use App\Models\WebSetting\Translate;
use App\Models\WebSetting\WebSettingService;
use App\Services\AmazonS3Service;
use App\Services\ProjectServer;
use App\Services\SyncService;
use GuzzleHttp\Client;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;

class Demo extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'demo';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'demo';


    /**
     * @remark :根据路由获取source+source_id
     * @name   :getRouteSource
     * @author :lyh
     * @method :post
     * @time   :2024/5/17 15:11
     */
    public function getRouteSource($route){
        $data = ['source'=>0,'source_id'=>0,'is_list'=>0,'is_custom'=>0];
        if(strtolower($route) == 'all'){
            return $this->success($data);
        }
        if($route == '/'){
            $data['source'] = 1;
            return $this->success($data);
        }
        $route = basename($route);
        $routeModel = new RouteMap();
        $routeInfo = $routeModel->read(['route'=>$route]);
        return $this->resultData($routeInfo,$data);
    }

    /**
     * @remark :返回数据
     * @name   :resultData
     * @author :lyh
     * @method :post
     * @time   :2024/5/20 11:54
     */
    public function resultData($routeInfo,$data){
        if($routeInfo['source'] == RouteMap::SOURCE_PAGE){
            if($routeInfo['source_id']){
                $data = ['source'=>9,'source_id'=>$routeInfo['source_id'],'is_list'=>0,'is_custom'=>0];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_PRODUCT){
            if($routeInfo['source_id']){
                $data = ['source'=>2,'source_id'=>$routeInfo['source_id'],'is_list'=>0,'is_custom'=>0];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_PRODUCT_CATE){
            if($routeInfo['source_id']){
                $data = ['source'=>2,'source_id'=>$routeInfo['source_id'],'is_list'=>1,'is_custom'=>0];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_BLOG){
            if($routeInfo['source_id']){
                $data = ['source'=>3,'source_id'=>$routeInfo['source_id'],'is_list'=>0,'is_custom'=>0];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_BLOG_CATE){
            if($routeInfo['source_id']){
                $data = ['source'=>3,'source_id'=>$routeInfo['source_id'],'is_list'=>1,'is_custom'=>0];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_NEWS){
            if($routeInfo['source_id']){
                $data = ['source'=>4,'source_id'=>$routeInfo['source_id'],'is_list'=>0,'is_custom'=>0];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_NEWS_CATE){
            if($routeInfo['source_id']){
                $data = ['source'=>4,'source_id'=>$routeInfo['source_id'],'is_list'=>1,'is_custom'=>0];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_MODULE){
            if($routeInfo['source_id']){
                $data = ['source'=>7,'source_id'=>$routeInfo['source_id'],'is_list'=>0,'is_custom'=>1];
            }
        }
        if($routeInfo['source'] == RouteMap::SOURCE_MODULE_CATE){
            if($routeInfo['source_id']){
                $data = ['source'=>7,'source_id'=>$routeInfo['source_id'],'is_list'=>1,'is_custom'=>1];
            }
        }
        return $data;
    }

    public function handle(){
        $projectModel = new Project();
        $list = $projectModel->list(['delete_status'=>0,'type'=>['!=',0]]);
        foreach ($list as $v){
            echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
            ProjectServer::useProject($v['id']);
            $translateModel = new Translate();
            $translateList = $translateModel->list();
            foreach ($translateList as $value){
                $data = $this->getRouteSource($value['url']);
                $rs = $this->model->edit($data,['id'=>$value['id']]);
            }
            DB::disconnect('custom_mysql');
        }
        DB::disconnect('custom_mysql');
    }


}