ManageController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers\Admin\Server;
  3. use App\Http\Requests\Admin\ServerTrojanSort;
  4. use App\Models\Plan;
  5. use App\Models\Server;
  6. use App\Models\ServerGroup;
  7. use App\Models\ServerShadowsocks;
  8. use App\Models\ServerTrojan;
  9. use App\Models\User;
  10. use App\Services\ServerService;
  11. use Illuminate\Http\Request;
  12. use App\Http\Controllers\Controller;
  13. use Illuminate\Support\Facades\DB;
  14. class ManageController extends Controller
  15. {
  16. public function getNodes(Request $request)
  17. {
  18. $serverService = new ServerService();
  19. $servers = array_merge(
  20. $serverService->getShadowsocksServers(),
  21. $serverService->getV2rayServers(),
  22. $serverService->getTrojanServers()
  23. );
  24. $tmp = array_column($servers, 'sort');
  25. array_multisort($tmp, SORT_ASC, $servers);
  26. return response([
  27. 'data' => $servers
  28. ]);
  29. }
  30. public function sort(Request $request)
  31. {
  32. DB::beginTransaction();
  33. foreach ($request->input('sorts') as $k => $v) {
  34. switch ($v['key']) {
  35. case 'shadowsocks':
  36. if (!ServerShadowsocks::find($v['value'])->update(['sort' => $k + 1])) {
  37. DB::rollBack();
  38. abort(500, '保存失败');
  39. }
  40. break;
  41. case 'v2ray':
  42. if (!Server::find($v['value'])->update(['sort' => $k + 1])) {
  43. DB::rollBack();
  44. abort(500, '保存失败');
  45. }
  46. break;
  47. case 'trojan':
  48. if (!ServerTrojan::find($v['value'])->update(['sort' => $k + 1])) {
  49. DB::rollBack();
  50. abort(500, '保存失败');
  51. }
  52. break;
  53. }
  54. }
  55. DB::commit();
  56. return response([
  57. 'data' => true
  58. ]);
  59. }
  60. }