DomainSettingController.php 3.1 KB
<?php
/**
 * @remark :
 * @name   :DomainSettingController.php
 * @author :lyh
 * @method :post
 * @time   :2025/3/20 11:23
 */

namespace App\Http\Controllers\Bside\SeoSetting;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\Domain\DomainInfo;
use App\Models\WebSetting\WebSetting;
use Illuminate\Http\Request;

/**
 * @remark :白帽系统设置二级域名
 * @name   :DomainSettingController
 * @author :lyh
 * @method :post
 * @time   :2025/3/20 11:23
 */
class DomainSettingController extends BaseController
{
    public function __construct(Request $request)
    {
        $this->model = new DomainInfo();
        parent::__construct($request);
    }

    /**
     * @remark :获取当前二级域名详情
     * @name   :getInfo
     * @author :lyh
     * @method :post
     * @time   :2025/3/20 11:26
     */
    public function getInfo(){
        $data = $this->model->read(['project_id'=>$this->user['project_id']]);
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @remark :保存域名数据
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2025/3/20 11:29
     */
    public function save(){
        $this->request->validate([
            'domain'=>['required'],
        ],[
            'domain.required' => 'domain不能为空',
        ]);
        $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 Project();
                $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('保存失败,请联系管理员');
        }

        $this->response('success');
    }

    /**
     * @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();
    }
}