ServerController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Models\Server;
  4. use App\Http\Requests\Server\SaveRequest;
  5. use App\Libs\Ssh;
  6. use Illuminate\Http\Request;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Support\Facades\Log;
  9. /**
  10. * 服务器管理
  11. * Class ServerController
  12. * @package App\Http\Controllers\Admin
  13. */
  14. class ServerController extends Controller
  15. {
  16. //服务器列表
  17. public function index(Request $request)
  18. {
  19. if (!$request->ajax()) {
  20. return view('admin/server/index');
  21. }
  22. $records = Server::query()->where([])->orderByDesc('server_id')
  23. ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE);
  24. $items = $records->items();
  25. array_walk($items, function ($item) {
  26. $item->type_title = Server::SERVER_TYPE[$item->server_type] ?? '';
  27. });
  28. return response()->json([
  29. 'rows' => $items,
  30. 'total' => $records->total()
  31. ]);
  32. }
  33. //保存
  34. public function save(SaveRequest $request, $id)
  35. {
  36. if (!$request->ajax()) {
  37. $record = Server::query()->find($id);
  38. return view('admin/server/save', [
  39. 'data' => $record
  40. ]);
  41. }
  42. $validated = $request->validated();
  43. Server::query()->updateOrCreate(['server_id' => $id], $validated);
  44. return response()->json(['message' => '操作成功']);
  45. }
  46. //批量删除
  47. public function batchDelete(Request $request)
  48. {
  49. $ids = $request->input('ids');;
  50. Server::destroy($ids);
  51. return response()->json(['message' => '操作成功']);
  52. }
  53. //重启
  54. public function reload($id)
  55. {
  56. $record = Server::query()->where(['server_id' => $id])->first();
  57. if (!$record) return response()->json(['message' => '数据不存在'], 400);
  58. try {
  59. Ssh::factory($record->server_ip, $record->server_user_name, $record->server_passwd);
  60. Log::info(Ssh::exec('lnmp restart'));
  61. } catch (\Throwable $throwable) {
  62. Log::error(var_export($throwable->getMessage(),1));
  63. return response()->json(['message' =>var_export( $throwable->getMessage(),1)], 400);
  64. }
  65. return response()->json(['message' => '操作成功']);
  66. }
  67. }