PermissionController.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace App\Http\Controllers\Admin\System;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Models\Permission;
  5. use App\Http\Requests\System\PermissionSaveRequest;
  6. use Illuminate\Http\Request;
  7. class PermissionController extends Controller
  8. {
  9. protected $logic;
  10. public function __construct()
  11. {
  12. }
  13. public function index(Request $request)
  14. {
  15. if (!$request->ajax()) {
  16. $permissions = Permission::query()->where(['type' => 1])->select(['title as name', 'id', 'parent_id'])
  17. ->orderByDesc('sort')->get()->toArray();
  18. $trees = list_to_tree($permissions, 'id', 'parent_id', 'children');
  19. return view('admin/system/permission', ['trees' => $trees]);
  20. }
  21. $filter = [['type', '=', 2]];
  22. if ($request->input('parentId')) {
  23. $filter[] = ['parent_id', '=', $request->input('parentId')];
  24. }
  25. $records = Permission::query()->where($filter)->orderByDesc('sort')
  26. ->paginate($request->input('pageSize') ?? TABLE_PAGE_SIZE);
  27. return response()->json([
  28. 'rows' => $records->items(),
  29. 'total' => $records->total()
  30. ]);
  31. }
  32. public function save(PermissionSaveRequest $request, $id)
  33. {
  34. if (!$request->ajax()) {
  35. $record = Permission::query()->find($id);
  36. return view('admin/system/permission_save', [
  37. 'data' => $record,
  38. 'type' => $request->input('type')
  39. ]);
  40. }
  41. $record = Permission::query()->updateOrCreate(['id' => $id], $request->validated());
  42. return response()->json(['message' => '操作成功', 'data' => $record]);
  43. }
  44. public function store(PermissionSaveRequest $request)
  45. {
  46. $validated = $request->validated();
  47. Permission::query()->create($validated);
  48. return response()->json(['message' => '操作成功']);
  49. }
  50. public function update(PermissionSaveRequest $request, $id)
  51. {
  52. $permission = Permission::query()->find($id);
  53. if (!$permission) return response()->json(['message' => '数据不存在']);
  54. $permission->update($request->validated());
  55. return response()->json(['message' => '操作成功']);
  56. }
  57. public function destroy($id)
  58. {
  59. $record = Permission::query()->where(['id' => $id])->first();
  60. if ($record) {
  61. if (Permission::query()->where(['parent_id' => $record->id])->exists()) {
  62. return response()->json(['message' => '请先删除子菜单'], 400);
  63. }
  64. $record->delete();
  65. }
  66. return response()->json(['message' => '操作成功']);
  67. }
  68. public function BatchDestroy(Request $request)
  69. {
  70. $ids = $request->input('ids');
  71. Permission::query()->whereIn('id', $ids)->where(['type' => 2])->delete();
  72. return response()->json(['message' => '操作成功']);
  73. }
  74. }