正在显示
1 个修改的文件
包含
68 行增加
和
126 行删除
| @@ -9,10 +9,8 @@ use App\Models\Devops\ServersIp; | @@ -9,10 +9,8 @@ use App\Models\Devops\ServersIp; | ||
| 9 | use App\Models\Domain\DomainCreateTask; | 9 | use App\Models\Domain\DomainCreateTask; |
| 10 | use App\Models\Domain\DomainInfo; | 10 | use App\Models\Domain\DomainInfo; |
| 11 | use App\Models\Product\Keyword; | 11 | use App\Models\Product\Keyword; |
| 12 | -use App\Models\Product\KeywordRelated; | ||
| 13 | -use App\Models\Product\Product; | 12 | +use App\Models\Project\DeployBuild; |
| 14 | use App\Models\Project\Project; | 13 | use App\Models\Project\Project; |
| 15 | -use App\Models\Project\ProjectUpdateTdk; | ||
| 16 | use App\Models\WebSetting\WebLanguage; | 14 | use App\Models\WebSetting\WebLanguage; |
| 17 | use App\Services\BatchExportService; | 15 | use App\Services\BatchExportService; |
| 18 | use App\Services\ProjectServer; | 16 | use App\Services\ProjectServer; |
| @@ -37,9 +35,76 @@ class Temp extends Command | @@ -37,9 +35,76 @@ class Temp extends Command | ||
| 37 | 35 | ||
| 38 | public function handle() | 36 | public function handle() |
| 39 | { | 37 | { |
| 38 | + $this->domain_rewrite_https(); | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + /** | ||
| 42 | + * 小语种为二级目录的项目强制跳转https | ||
| 43 | + * @author Akun | ||
| 44 | + * @date 2025/03/01 10:48 | ||
| 45 | + */ | ||
| 46 | + public function domain_rewrite_https() | ||
| 47 | + { | ||
| 48 | + $domainModel = new DomainInfo(); | ||
| 49 | + $projectModel = new Project(); | ||
| 50 | + $buildModel = new DeployBuild(); | ||
| 51 | + $serverIpModel = new ServersIp(); | ||
| 52 | + $domainCreateTaskModel = new DomainCreateTask(); | ||
| 53 | + $list = $domainModel->select(['id', 'domain', 'project_id'])->where('status', '=', 1)->where('project_id', '>', 0)->get(); | ||
| 54 | + foreach ($list as $v) { | ||
| 55 | + $project_info = $projectModel->read(['id' => $v['project_id']], ['serve_id']); | ||
| 56 | + if (!$project_info) { | ||
| 57 | + continue; | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + $build_info = $buildModel->read(['project_id' => $v['project_id']], ['linking_format']); | ||
| 61 | + if (!$build_info) { | ||
| 62 | + continue; | ||
| 63 | + } | ||
| 64 | + if ($build_info['linking_format'] != 1) { | ||
| 65 | + continue; | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + $servers_ip_info = $serverIpModel->read(['id' => $project_info['serve_id']], ['servers_id', 'ip', 'domain']); | ||
| 69 | + if (!$servers_ip_info) { | ||
| 70 | + continue; | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + //过滤测试项目域名 | ||
| 74 | + if ($servers_ip_info['servers_id'] == ServerConfig::SELF_TEST_ID) { | ||
| 75 | + continue; | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + //过滤自建站项目域名 | ||
| 79 | + if ($servers_ip_info['servers_id'] == ServerConfig::SELF_SITE_ID) { | ||
| 80 | + continue; | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + //过滤已解析到别的ip的域名 | ||
| 84 | + if (!check_domain_record($v['domain'], $servers_ip_info)) { | ||
| 85 | + continue; | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + //强制跳转https | ||
| 89 | + $v->is_https = 1; | ||
| 90 | + $v->save(); | ||
| 91 | + | ||
| 92 | + //创建更新站点证书任务 | ||
| 93 | + $task_info = $domainCreateTaskModel->read(['type' => DomainCreateTask::TYPE_MAIN, 'domain_id' => $v['id'], 'status' => ['<', DomainCreateTask::STATUS_SUC]]); | ||
| 94 | + if (!$task_info) { | ||
| 95 | + $domainCreateTaskModel->add([ | ||
| 96 | + 'server_id' => $servers_ip_info['servers_id'], | ||
| 97 | + 'project_id' => $v['project_id'], | ||
| 98 | + 'domain_id' => $v['id'], | ||
| 99 | + 'type' => DomainCreateTask::TYPE_MAIN | ||
| 100 | + ]); | ||
| 101 | + } | ||
| 40 | 102 | ||
| 103 | + $this->output($v['id'] . ' , success'); | ||
| 104 | + } | ||
| 41 | } | 105 | } |
| 42 | 106 | ||
| 107 | + | ||
| 43 | /** | 108 | /** |
| 44 | * 240服务器上解析cname的项目迁移 | 109 | * 240服务器上解析cname的项目迁移 |
| 45 | * @author Akun | 110 | * @author Akun |
| @@ -128,42 +193,6 @@ class Temp extends Command | @@ -128,42 +193,6 @@ class Temp extends Command | ||
| 128 | } | 193 | } |
| 129 | 194 | ||
| 130 | /** | 195 | /** |
| 131 | - * 2025-02-05 日以来的项目,重写tdk(keyword_title) | ||
| 132 | - * @author Akun | ||
| 133 | - * @date 2025/02/15 10:58 | ||
| 134 | - */ | ||
| 135 | - public function product_keyword_rewrite() | ||
| 136 | - { | ||
| 137 | - $products = ProjectUpdateTdk::where('created_at', '>=', '2025-02-05 00:00:00')->pluck('project_id')->toArray(); | ||
| 138 | - $products_ids = array_unique($products); | ||
| 139 | - | ||
| 140 | - $success_json = file_get_contents(storage_path('logs/lk/success.log')); | ||
| 141 | - $success = json_decode($success_json, true) ?: []; | ||
| 142 | - | ||
| 143 | - foreach ($products_ids as $project_id) { | ||
| 144 | - if (in_array($project_id, $success)) { | ||
| 145 | - $this->output($project_id . ' | 已执行,跳过'); | ||
| 146 | - continue; | ||
| 147 | - } | ||
| 148 | - | ||
| 149 | - ProjectServer::useProject($project_id); | ||
| 150 | - DB::connection('custom_mysql')->table('gl_product_keyword')->update(['keyword_title' => '']); | ||
| 151 | - | ||
| 152 | - try { | ||
| 153 | - ProjectUpdateTdk::add_task($project_id); | ||
| 154 | - } catch (\Exception $e) { | ||
| 155 | - $this->output($project_id . ' | ' . $e->getMessage()); | ||
| 156 | - } | ||
| 157 | - | ||
| 158 | - DB::disconnect('custom_mysql'); | ||
| 159 | - array_push($success, $project_id); | ||
| 160 | - file_put_contents(storage_path('logs/lk/success.log'), json_encode($success)); | ||
| 161 | - } | ||
| 162 | - | ||
| 163 | - $this->output('success'); | ||
| 164 | - } | ||
| 165 | - | ||
| 166 | - /** | ||
| 167 | * 创建所有站点建站任务 | 196 | * 创建所有站点建站任务 |
| 168 | * @author Akun | 197 | * @author Akun |
| 169 | * @date 2025/01/27 9:48 | 198 | * @date 2025/01/27 9:48 |
| @@ -386,33 +415,6 @@ class Temp extends Command | @@ -386,33 +415,6 @@ class Temp extends Command | ||
| 386 | } | 415 | } |
| 387 | } | 416 | } |
| 388 | 417 | ||
| 389 | - | ||
| 390 | - /** | ||
| 391 | - * 关联所有项目关键词 | ||
| 392 | - * @author Akun | ||
| 393 | - * @date 2024/11/18 15:07 | ||
| 394 | - */ | ||
| 395 | - public function relation_all_keywords() | ||
| 396 | - { | ||
| 397 | - $projects = Project::select(['id'])->orderBy('id', 'asc')->get(); | ||
| 398 | - foreach ($projects as $project) { | ||
| 399 | - ProjectServer::useProject($project->id); | ||
| 400 | - | ||
| 401 | - try { | ||
| 402 | - Product::select(['id', 'keyword_id'])->chunk(1000, function ($query) { | ||
| 403 | - foreach ($query as $item) { | ||
| 404 | - KeywordRelated::saveRelated($item->id, $item->keyword_id); | ||
| 405 | - } | ||
| 406 | - }); | ||
| 407 | - } catch (\Exception $e) { | ||
| 408 | - $this->output($e->getMessage()); | ||
| 409 | - continue; | ||
| 410 | - } | ||
| 411 | - | ||
| 412 | - $this->output('ID:' . $project->id . ',success'); | ||
| 413 | - } | ||
| 414 | - } | ||
| 415 | - | ||
| 416 | /** | 418 | /** |
| 417 | * 获取指定服务器所有项目 | 419 | * 获取指定服务器所有项目 |
| 418 | * @author Akun | 420 | * @author Akun |
| @@ -692,66 +694,6 @@ class Temp extends Command | @@ -692,66 +694,6 @@ class Temp extends Command | ||
| 692 | } | 694 | } |
| 693 | } | 695 | } |
| 694 | 696 | ||
| 695 | - /** | ||
| 696 | - * 创建指定项目聚合页生成任务 | ||
| 697 | - * @author Akun | ||
| 698 | - * @date 2025/02/11 13:50 | ||
| 699 | - */ | ||
| 700 | - public function create_update_keyword_page() | ||
| 701 | - { | ||
| 702 | - $ids_arr = ["46", "83", "91", "150", "190", "206", "219", "221", "232", "233", "238", "287", "290", "299", "319", "321", "353", "356", "388", "389", "456", "457", "475", "491", "518", "535", "554", "600", "624", "650", "728", "732", "783", "807", "835", "881", "896", "913", "947", "1001", "1320", "1336", "1373", "1424", "1442", "1455", "1466", "1505", "1584", "1597", "1617", "1682", "1770", "1816", "1824", "1835", "1860", "1870", "1896", "1913", "1989", "1991", "1992", "2022", "2037", "2059", "2060", "2062", "2104", "2115", "2129", "2131", "2135", "2191", "2204", "2217", "2245", "2257", "2287", "2309", "2313", "2330", "2336", "2337", "2338", "2351", "2391", "2418", "2423", "2435", "2462", "2496", "2504", "2505", "2660", "2768", "2811", "2874", "3157"]; | ||
| 703 | - $project_list = Project::select(['id', 'serve_id'])->whereIn('id', $ids_arr)->get(); | ||
| 704 | - | ||
| 705 | - $domain_model = new DomainInfo(); | ||
| 706 | - $notify_model = new Notify(); | ||
| 707 | - $server_ip_model = new ServersIp(); | ||
| 708 | - | ||
| 709 | - foreach ($project_list as $value) { | ||
| 710 | - $project_id = $value->id; | ||
| 711 | - | ||
| 712 | - $domain_info = $domain_model->read(['project_id' => $project_id, 'status' => 1], ['id', 'domain']); | ||
| 713 | - if (!$domain_info) { | ||
| 714 | - //过滤未绑定正式域名的项目 | ||
| 715 | - continue; | ||
| 716 | - } | ||
| 717 | - $domain = $domain_info['domain']; | ||
| 718 | - | ||
| 719 | - //获取项目所在服务器 | ||
| 720 | - $serve_ip_info = $server_ip_model->read(['id' => $value->serve_id], ['domain', 'ip', 'servers_id']); | ||
| 721 | - if (!$serve_ip_info) { | ||
| 722 | - $this->output('项目id:' . $project_id . ' | 未查询到服务器数据'); | ||
| 723 | - continue; | ||
| 724 | - } | ||
| 725 | - | ||
| 726 | - if ($serve_ip_info['servers_id'] != ServerConfig::SELF_SITE_ID) { | ||
| 727 | - if (!check_domain_record($domain, $serve_ip_info)) { | ||
| 728 | - $this->output('项目id:' . $project_id . ', domain:' . $domain . ' | 未解析到目标服务器'); | ||
| 729 | - continue; | ||
| 730 | - } | ||
| 731 | - } | ||
| 732 | - | ||
| 733 | - | ||
| 734 | - $data = [ | ||
| 735 | - 'project_id' => $project_id, | ||
| 736 | - 'type' => 1, | ||
| 737 | - 'route' => 4, | ||
| 738 | - 'server_id' => $serve_ip_info['servers_id'], | ||
| 739 | - 'status' => ['!=', Notify::STATUS_FINISH_SITEMAP] | ||
| 740 | - ]; | ||
| 741 | - $notify = $notify_model->read($data, ['id']); | ||
| 742 | - | ||
| 743 | - if (!$notify) { | ||
| 744 | - $data['data'] = Arr::a2s(['domain' => $domain, 'url' => null, 'language' => []]); | ||
| 745 | - $data['status'] = Notify::STATUS_INIT; | ||
| 746 | - if ($serve_ip_info['servers_id'] == 2) { | ||
| 747 | - $data['is_pull_html_zip'] = Notify::IS_PULL_HTML_ZIP_TRUE; | ||
| 748 | - } | ||
| 749 | - $notify_model->add($data); | ||
| 750 | - | ||
| 751 | - $this->output('项目id:' . $project_id . ', domain:' . $domain . ' | success'); | ||
| 752 | - } | ||
| 753 | - } | ||
| 754 | - } | ||
| 755 | 697 | ||
| 756 | public function output($msg) | 698 | public function output($msg) |
| 757 | { | 699 | { |
-
请 注册 或 登录 后发表评论