作者 刘锟

合并分支 'akun' 到 'master'

Akun



查看合并请求 !1059
@@ -4,7 +4,9 @@ namespace App\Console\Commands\Test; @@ -4,7 +4,9 @@ namespace App\Console\Commands\Test;
4 4
5 use App\Helper\Arr; 5 use App\Helper\Arr;
6 use App\Models\Com\Notify; 6 use App\Models\Com\Notify;
  7 +use App\Models\Devops\ServerConfig;
7 use App\Models\Devops\ServersIp; 8 use App\Models\Devops\ServersIp;
  9 +use App\Models\Domain\DomainCreateTask;
8 use App\Models\Domain\DomainInfo; 10 use App\Models\Domain\DomainInfo;
9 use App\Models\Product\Keyword; 11 use App\Models\Product\Keyword;
10 use App\Models\Product\KeywordRelated; 12 use App\Models\Product\KeywordRelated;
@@ -33,7 +35,88 @@ class Temp extends Command @@ -33,7 +35,88 @@ class Temp extends Command
33 35
34 public function handle() 36 public function handle()
35 { 37 {
  38 + $this->create_domain_task();
  39 + }
  40 +
  41 + /**
  42 + * 创建所有站点建站任务
  43 + * @author Akun
  44 + * @date 2025/01/27 9:48
  45 + */
  46 + public function create_domain_task()
  47 + {
  48 + $domainModel = new DomainInfo();
  49 + $projectModel = new Project();
  50 + $serverIpModel = new ServersIp();
  51 + $domainCreateTaskModel = new DomainCreateTask();
  52 + $list = $domainModel->select(['id', 'domain', 'project_id', 'amp_status'])->where('status', '=', 1)->where('project_id', '>', 0)->get()->toArray();
  53 + foreach ($list as $v) {
  54 + $project_info = $projectModel->read(['id' => $v['project_id']], ['serve_id']);
  55 + if (!$project_info) {
  56 + continue;
  57 + }
  58 +
  59 + $servers_ip_info = $serverIpModel->read(['id' => $project_info['serve_id']], ['servers_id', 'ip', 'domain']);
  60 + if (!$servers_ip_info) {
  61 + continue;
  62 + }
  63 +
  64 + //过滤测试项目域名
  65 + if ($servers_ip_info['servers_id'] == ServerConfig::SELF_TEST_ID) {
  66 + continue;
  67 + }
36 68
  69 + //过滤自建站项目域名
  70 + if ($servers_ip_info['servers_id'] == ServerConfig::SELF_SITE_ID) {
  71 + continue;
  72 + }
  73 +
  74 + //过滤已解析到别的ip的域名
  75 + if (!check_domain_record($v['domain'], $servers_ip_info)) {
  76 + continue;
  77 + }
  78 +
  79 + //创建更新站点证书任务
  80 + $task_info = $domainCreateTaskModel->read(['type' => DomainCreateTask::TYPE_MAIN, 'domain_id' => $v['id'], 'status' => ['<', DomainCreateTask::STATUS_SUC]]);
  81 + if (!$task_info) {
  82 + $domainCreateTaskModel->add([
  83 + 'server_id' => $servers_ip_info['servers_id'],
  84 + 'project_id' => $v['project_id'],
  85 + 'domain_id' => $v['id'],
  86 + 'type' => DomainCreateTask::TYPE_MAIN
  87 + ]);
  88 + }
  89 +
  90 + if ($v['amp_status']) {
  91 + $domain_array = parse_url($v['domain']);
  92 + $host = $domain_array['host'] ?? $domain_array['path'];
  93 + $host_array = explode('.', $host);
  94 + if (count($host_array) <= 2) {
  95 + array_unshift($host_array, 'm');
  96 + } else {
  97 + $host_array[0] = 'm';
  98 + }
  99 + $amp_domain = implode('.', $host_array);
  100 +
  101 + //过滤已解析到别的ip的AMP域名
  102 + if (!check_domain_record($amp_domain, $servers_ip_info)) {
  103 + continue;
  104 + }
  105 +
  106 + //创建更新AMP站点证书任务
  107 + $task_info_amp = $domainCreateTaskModel->read(['type' => DomainCreateTask::TYPE_AMP, 'domain_id' => $v['id'], 'status' => ['<', DomainCreateTask::STATUS_SUC]]);
  108 + if (!$task_info_amp) {
  109 + $domainCreateTaskModel->add([
  110 + 'server_id' => $servers_ip_info['servers_id'],
  111 + 'project_id' => $v['project_id'],
  112 + 'domain_id' => $v['id'],
  113 + 'type' => DomainCreateTask::TYPE_AMP
  114 + ]);
  115 + }
  116 + }
  117 +
  118 + $this->output($v['id'] . ' , success');
  119 + }
37 } 120 }
38 121
39 /** 122 /**