ServersController.php 3.6 KB
<?php
/**
 * @remark :
 * @name   :ServersController.php
 * @author :lyh
 * @method :post
 * @time   :2024/6/24 16:18
 */

namespace App\Http\Controllers\Aside\Devops;

use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Devops\ServersLogic;
use App\Models\Devops\Servers as ServersModel;
use App\Models\Devops\ServersIp;
use App\Models\Project\Project;

class ServersController extends BaseController
{
    /**
     * @remark :获取服务器列表(不分页)
     * @name   :serverList
     * @author :lyh
     * @method :post
     * @time   :2024/6/24 17:47
     */
    public function list(){
        if(isset($this->map['server_name']) && !empty($this->map['server_name'])){
            $this->map['server_name'] = ['like','%'.$this->map['server_name'].'%'];
        }
        $this->map['status'] = 0;
        $serversModel = new ServersModel();
        $lists = $serversModel->list($this->map);
        $this->response('success',Code::SUCCESS,$lists);
    }


    /**
     * @remark :服务器列表
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2024/6/24 16:25
     */
    public function lists(){
        if(isset($this->map['server_name']) && !empty($this->map['server_name'])){
            $this->map['server_name'] = ['like','%'.$this->map['server_name'].'%'];
        }
        if(isset($this->map['project_name']) && !empty($this->map['project_name'])){
            $projectModel = new Project();
            $projectInfo = $projectModel->read(['title'=>['like','%'.$this->map['project_name'].'%']],['id','serve_id']);
            if($projectInfo !== false){
                $serversIpModel = new ServersIp();
                $ipInfo = $serversIpModel->read(['id'=>$projectInfo['serve_id']],['servers_id']);
                if($ipInfo !== false){
                    $this->map['id'] = $ipInfo['servers_id'];
                }
            }
            unset($this->map['project_name']);
        }
        $serversModel = new ServersModel();
        $data = $serversModel->lists($this->map,$this->page,$this->row,$this->order);
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @remark :获取详情
     * @name   :Info
     * @author :lyh
     * @method :post
     * @time   :2024/6/24 17:05
     */
    public function info(ServersLogic $serversLogic){
        $this->request->validate([
            'id'=>'required'
        ],[
            'id.required' => '主键不能为空'

        ]);
        $data = $serversLogic->infoServers();
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @remark :保存数据
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2024/6/24 16:25
     */
    public function save(ServersLogic $serversLogic){
        $this->request->validate([
            'server_name'=>'required',
            'service_type'=>'required',
            'account'=>'required',
            'password'=>'required',
            'port'=>'required',
            'ip_total'=>'required',
            'domain'=>'required'
        ],[
            'server_name.required' => '服务器名称server_name不能为空',
            'service_type.required' => '服务器类型不能为空',
            'account.required' => '账号不能为空',
            'password.required' => '密码不能为空',
            'port.required' => '端口不能为空',
            'ip_total.required' => 'ip使用數量不能为空',
            'domain.required' => '初始域名不能为空',
        ]);
        $data = $serversLogic->saveServers();
        $this->response('success',Code::SUCCESS,$data);
    }
}