123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace 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' => '操作成功']);
- }
- }
|