| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?phpnamespace App\Http\Controllers\Admin;use App\Http\Models\Server;use App\Http\Requests\Server\SaveRequest;use App\Libs\Ssh;use Illuminate\Http\Request;use App\Http\Controllers\Controller;use Illuminate\Support\Facades\Log;/** * 服务器管理 * Class ServerController * @package App\Http\Controllers\Admin */class ServerController extends Controller{    //服务器列表    public function index(Request $request)    {        if (!$request->ajax()) {            return view('admin/server/index');        }        $records = Server::query()->where([])->orderByDesc('server_id')            ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE);        $items = $records->items();        array_walk($items, function ($item) {            $item->type_title = Server::SERVER_TYPE[$item->server_type] ?? '';        });        return response()->json([            'rows' => $items,            'total' => $records->total()        ]);    }    //保存    public function save(SaveRequest $request, $id)    {        if (!$request->ajax()) {            $record = Server::query()->find($id);            return view('admin/server/save', [                'data' => $record            ]);        }        $validated = $request->validated();        Server::query()->updateOrCreate(['server_id' => $id], $validated);        return response()->json(['message' => '操作成功']);    }    //批量删除    public function batchDelete(Request $request)    {        $ids = $request->input('ids');;        Server::destroy($ids);        return response()->json(['message' => '操作成功']);    }    //重启    public function reload($id)    {        $record = Server::query()->where(['server_id' => $id])->first();        if (!$record) return response()->json(['message' => '数据不存在'], 400);        try {            Ssh::factory($record->server_ip, $record->server_user_name, $record->server_passwd);            Log::info(Ssh::exec('lnmp restart'));        } catch (\Throwable $throwable) {            Log::error(var_export($throwable->getMessage(),1));            return response()->json(['message' =>var_export( $throwable->getMessage(),1)], 400);        }        return response()->json(['message' => '操作成功']);    }}
 |