RequirementGroupController.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Http\Controllers\API;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\API\RequirementGroup\CreateOrUpdateRequest;
  5. use App\Http\Resources\API\AssetGroupResource;
  6. use App\Http\Resources\API\RequirementGroupResource;
  7. use App\Models\RequirementGroup;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. class RequirementGroupController extends Controller
  11. {
  12. /**
  13. * Display a listing of the resource.
  14. */
  15. public function index(Request $request)
  16. {
  17. $pageSize=$request->get('page_size') ?? 10;
  18. $groups = RequirementGroup::filter($request->all())->where("parent_id",0)->with(['children','asset'])->paginate($pageSize);
  19. return RequirementGroupResource::collection($groups);
  20. }
  21. //公共RequirementGroup查询
  22. public function publicSearch(Request $request)
  23. {
  24. $groups = RequirementGroup::filter($request->all())->where("parent_id",0)->with(['children'])->get();
  25. return RequirementGroupResource::collection($groups);
  26. }
  27. /**
  28. * Store a newly created resource in storage.
  29. */
  30. public function store(CreateOrUpdateRequest $request)
  31. {
  32. RequirementGroup::create([
  33. ...$request->all(),
  34. 'company_id' => Auth::user()->company_id,
  35. ]);
  36. return $this->created();
  37. }
  38. /**
  39. * Display the specified resource.
  40. */
  41. public function show(string $id)
  42. {
  43. $groups = RequirementGroup::findOrFail($id);
  44. return new RequirementGroupResource($groups);
  45. }
  46. /**
  47. * Update the specified resource in storage.
  48. */
  49. public function update(CreateOrUpdateRequest $request, string $id)
  50. {
  51. $group = RequirementGroup::query()->findOrFail($id);
  52. $group->fill($request->all());
  53. $group->save();
  54. return $this->noContent();
  55. }
  56. /**
  57. * Remove the specified resource from storage.
  58. */
  59. public function destroy(string $id)
  60. {
  61. $group = RequirementGroup::query()->findOrFail($id);
  62. if(empty($group->children()->first())){
  63. $group->delete();
  64. }
  65. else{
  66. throw new \Exception("Please remove the sub-level requirementGroup");
  67. }
  68. return $this->noContent();
  69. }
  70. }