GroupController.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace App\Http\Controllers\Admin\Server;
  3. use App\Models\Plan;
  4. use App\Models\Server;
  5. use App\Models\ServerGroup;
  6. use App\Models\User;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. class GroupController extends Controller
  10. {
  11. public function fetch(Request $request)
  12. {
  13. if ($request->input('group_id')) {
  14. return response([
  15. 'data' => [ServerGroup::find($request->input('group_id'))]
  16. ]);
  17. }
  18. return response([
  19. 'data' => ServerGroup::get()
  20. ]);
  21. }
  22. public function save(Request $request)
  23. {
  24. if (empty($request->input('name'))) {
  25. abort(500, '组名不能为空');
  26. }
  27. if ($request->input('id')) {
  28. $serverGroup = ServerGroup::find($request->input('id'));
  29. } else {
  30. $serverGroup = new ServerGroup();
  31. }
  32. $serverGroup->name = $request->input('name');
  33. return response([
  34. 'data' => $serverGroup->save()
  35. ]);
  36. }
  37. public function drop(Request $request)
  38. {
  39. if ($request->input('id')) {
  40. $serverGroup = ServerGroup::find($request->input('id'));
  41. if (!$serverGroup) {
  42. abort(500, '组不存在');
  43. }
  44. }
  45. $servers = Server::all();
  46. foreach ($servers as $server) {
  47. $groupId = json_decode($server->group_id);
  48. if (in_array($request->input('id'), $groupId)) {
  49. abort(500, '该组已被节点所使用,无法删除');
  50. }
  51. }
  52. if (Plan::where('group_id', $request->input('id'))->first()) {
  53. abort(500, '该组已被订阅所使用,无法删除');
  54. }
  55. if (User::where('group_id', $request->input('id'))->first()) {
  56. abort(500, '该组已被用户所使用,无法删除');
  57. }
  58. return response([
  59. 'data' => $serverGroup->delete()
  60. ]);
  61. }
  62. }