ProjectController.php 2.4 KB
<?php

namespace App\Http\Controllers\Aside;

use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;

use App\Http\Logic\Aside\ServerConfigLogic;
use App\Http\Requests\Aside\ServerConfigRequest;
use App\Models\Project as ProjectModel;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Validation\Rule;
use Illuminate\Validation\ValidationException;

/**
 * @name:项目信息
 */
class ProjectController extends BaseController
{
    /**
     * @name :项目列表
     * @return void
     * @author :liyuhang
     * @method
     */
    public function lists(){
        $projectModel = new ProjectModel();
        $lists = $projectModel->lists($this->map,$this->p,$this->row,$this->order);
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @name :添加项目
     * @return void
     * @author :liyuhang
     * @method
     */
    public function add(){
        $projectModel = new ProjectModel();
    }

    /**
     * 保存配置
     * @param ServerConfigRequest $request
     * @param ServerConfigLogic $logic
     * @author zbj
     * @date 2023/4/23
     */
    public function saveServerConfig(ServerConfigRequest $request, ServerConfigLogic $logic){
        $data = $logic->save($this->param);
        return $this->success($data);
    }

    /**
     * 更新表结构
     * @param ServerConfigLogic $logic
     * @author zbj
     * @date 2023/4/24
     */
    public function updateDatabase(Request $request, ServerConfigLogic $logic){
        $request->validate([
            'type' => 'in:1,2,3',
            'id'=> Rule::requiredIf($request->type == 1),
            'sql' => ['required', function ($attribute, $value, $fail) {
                if(Str::contains(Str::lower($value), ['drop', 'delete', 'truncate'])){
                    $fail('危险操作');
                }
            }]
        ],[
            'id.required' => 'ID不能为空',
            'sql.required' => '请输入Sql语句',
        ]);

        switch ($this->param['type']){
            case "1":
                $data = $logic->updateTable($this->param);
                break;
            case "2":
                $data = $logic->updateLocalTable($this->param);
                break;
            case "3":
                $data = $logic->updateAllTable($this->param);
                break;
        }

        return $this->success($data);
    }
}