TrojanController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace App\Http\Controllers\Admin\Server;
  3. use App\Http\Requests\Admin\ServerTrojanSave;
  4. use App\Http\Requests\Admin\ServerTrojanUpdate;
  5. use App\Services\ServerService;
  6. use Illuminate\Http\Request;
  7. use App\Http\Controllers\Controller;
  8. use App\Models\ServerTrojan;
  9. class TrojanController extends Controller
  10. {
  11. public function save(ServerTrojanSave $request)
  12. {
  13. $params = $request->validated();
  14. if ($request->input('id')) {
  15. $server = ServerTrojan::find($request->input('id'));
  16. if (!$server) {
  17. abort(500, '服务器不存在');
  18. }
  19. try {
  20. $server->update($params);
  21. } catch (\Exception $e) {
  22. abort(500, '保存失败');
  23. }
  24. return response([
  25. 'data' => true
  26. ]);
  27. }
  28. if (!ServerTrojan::create($params)) {
  29. abort(500, '创建失败');
  30. }
  31. return response([
  32. 'data' => true
  33. ]);
  34. }
  35. public function drop(Request $request)
  36. {
  37. if ($request->input('id')) {
  38. $server = ServerTrojan::find($request->input('id'));
  39. if (!$server) {
  40. abort(500, '节点ID不存在');
  41. }
  42. }
  43. return response([
  44. 'data' => $server->delete()
  45. ]);
  46. }
  47. public function update(ServerTrojanUpdate $request)
  48. {
  49. $params = $request->only([
  50. 'show',
  51. ]);
  52. $server = ServerTrojan::find($request->input('id'));
  53. if (!$server) {
  54. abort(500, '该服务器不存在');
  55. }
  56. try {
  57. $server->update($params);
  58. } catch (\Exception $e) {
  59. abort(500, '保存失败');
  60. }
  61. return response([
  62. 'data' => true
  63. ]);
  64. }
  65. public function copy(Request $request)
  66. {
  67. $server = ServerTrojan::find($request->input('id'));
  68. $server->show = 0;
  69. if (!$server) {
  70. abort(500, '服务器不存在');
  71. }
  72. if (!ServerTrojan::create($server->toArray())) {
  73. abort(500, '复制失败');
  74. }
  75. return response([
  76. 'data' => true
  77. ]);
  78. }
  79. public function viewConfig(Request $request)
  80. {
  81. $serverService = new ServerService();
  82. $config = $serverService->getTrojanConfig($request->input('node_id'), 23333);
  83. return response([
  84. 'data' => $config
  85. ]);
  86. }
  87. }