<?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\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';
    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $projectModel = new Project();
        $list = $projectModel->list(['delete_status'=>0,'type'=>['!=',0]]);
        $data = [];
        foreach ($list as $v){
            echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
            ProjectServer::useProject($v['id']);
            DB::table('gl_web_template_com')->truncate();
            $templateComModel = new BTemplateCom();
            $templateComModel->truncate();
            $this->saveTemplateCom($v['id']);
            DB::disconnect('custom_mysql');
        }
        echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
    }

    public function saveTemplateCom($project_id){
        //获取当前项目选择的模版
        $settingModel = new Setting();
        $settingInfo = $settingModel->read(['project_id'=>$project_id]);
        echo date('Y-m-d H:i:s') . '设置的模版:'.json_encode($settingInfo) . PHP_EOL;
        if($settingInfo !== false){
            $templateCommonModel = new BTemplateCommon();
            $commonList = $templateCommonModel->list(['template_id'=>['in',[$settingInfo['template_id'],0]]]);
            if(!empty($commonList)){
                foreach ($commonList as $v){
                    $typeArr = [1, 2, 3];
                    foreach ($typeArr as $type){
                        if($type == 1){
                            $headData = [
                                'project_id'=>$v['project_id'],
                                'source'=>$v['type'] == 1 ? 99 : $v['type'],
                                'common_type'=>1,
                                'template_id'=>$v['template_id'],
                                'html'=>$v['head_html'],
                                'html_style'=>$v['head_css'],
                                'is_custom'=>$v['is_custom'],
                                'is_list'=>$v['is_list']
                            ];
                            $templateComModel = new BTemplateCom();
                            $templateComModel->add($headData);
                        }elseif ($type == 2){
                            $footerData = [
                                'project_id'=>$v['project_id'],
                                'source'=>$v['type'] == 1 ? 99 : $v['type'],
                                'common_type'=>2,
                                'template_id'=>$v['template_id'],
                                'html'=>$v['footer_html'],
                                'html_style'=>$v['footer_css'],
                                'is_custom'=>$v['is_custom'],
                                'is_list'=>$v['is_list']
                            ];
                            $templateComModel = new BTemplateCom();
                            $templateComModel->add($footerData);
                        }elseif ($type == 3){
                            $otherData = [
                                'project_id'=>$v['project_id'],
                                'source'=>$v['type'] == 1 ? 99 : $v['type'],
                                'common_type'=>3,
                                'template_id'=>$v['template_id'],
                                'html'=>$v['other'],
                                'html_style'=>null,
                                'is_custom'=>$v['is_custom'],
                                'is_list'=>$v['is_list']
                            ];
                            $templateComModel = new BTemplateCom();
                            $templateComModel->add($otherData);
                        }
                    }
                }
            }
        }
        return true;
    }
}