DomainSettingLogic.php 2.3 KB
<?php
/**
 * @remark :
 * @name   :DomainSettingLogic.php
 * @author :lyh
 * @method :post
 * @time   :2025/3/20 16:01
 */

namespace App\Http\Logic\Bside\SeoSetting;

use App\Http\Logic\Bside\BaseLogic;
use App\Models\Project\DeployOptimize;
use App\Models\WebSetting\WebSetting;

class DomainSettingLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->param = $this->requestAll;
    }

    /**
     * @remark :保存设置
     * @name   :saveDomain
     * @author :lyh
     * @method :post
     * @time   :2025/3/20 16:12
     */
    public function saveDomain(){
        $domain = parse_url($this->param['domain'], PHP_URL_HOST);
        if(!empty($domain)){
            $this->param['domain'] = trim($domain['host']);
        }
        //保存一条主域名记录
        try {
            $this->saveWebSetting($this->param['domain']);
            //添加域名到域名管理
            $info = $this->model->read(['project_id'=>$this->user['project_id']]);
            if($info === false){
                //保存数据
                $this->param['domain'] = str_replace('www','blog',$this->param['domain']);
                $id = $this->model->addReturnId(['domain'=>$this->param['domain'],'project_id'=>$this->user['project_id'],'belong_to'=>2,'status'=>1]);
                $projectModel  = new DeployOptimize();
                $projectModel->edit(['domain'=>$id],['project_id'=>$this->user['project_id']]);
            }else{
                $this->model->edit(['domain'=>$this->param['domain']],['project_id'=>$this->user['project_id']]);
            }
        }catch (\Exception $e){
            $this->fail('保存失败,请联系管理员');
        }
    }

    /**
     * @remark :保存主域名设置
     * @name   :saveWebSetting
     * @author :lyh
     * @method :post
     * @time   :2025/3/20 15:38
     */
    public function saveWebSetting($domain){
        $webSettingModel = new WebSetting();
        $settingInfo = $webSettingModel->read(['project_id'=>$this->user['project_id']]);
        if($settingInfo === false){
            $webSettingModel->add(['seo_domain'=>$domain,'project_id'=>$this->user['project_id']]);
        }else{
            $webSettingModel->edit(['seo_domain'=>$domain],['id'=>$settingInfo['id']]);
        }
        return $this->success();
    }
}