CompanyController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. /**
  3. * Created by IntelliJ IDEA.
  4. * User: kelyliang
  5. * Date: 2024/3/20
  6. * Time: 下午 02:32
  7. */
  8. namespace App\Http\Controllers\API;
  9. use App\Http\Controllers\Controller;
  10. use App\Http\Requests\API\Company\ActionRequest;
  11. use App\Http\Requests\API\Company\CreateOrUpdateRequest;
  12. use App\Http\Resources\API\CompanyResource;
  13. use App\Models\Company;
  14. use App\Models\User;
  15. use App\Services\File\FileAssociationService;
  16. use Illuminate\Http\Request;
  17. use Illuminate\Support\Facades\Auth;
  18. use App\Models\Enums\CompanyReviewStatus;
  19. class CompanyController extends Controller
  20. {
  21. public function index(Request $request)
  22. {
  23. if(Auth::user()->super_admin){
  24. $company=Company::query()->filter($request->all())->get();
  25. return CompanyResource::collection($company);
  26. }else{
  27. $company=Auth::user()->company;
  28. return new CompanyResource($company);
  29. }
  30. }
  31. public function store(CreateOrUpdateRequest $request)
  32. {
  33. $company = new Company();
  34. $company->fill([
  35. ...$request->all(),
  36. ]);
  37. $company->save();
  38. return $this->created();
  39. }
  40. public function show(string $id)
  41. {
  42. $companyId=Auth::user()->company->id;
  43. if(empty(Auth::user()->super_admin)){
  44. if($companyId!=$id){
  45. return $this->forbidden("You are not a user under this company");
  46. }
  47. }
  48. $field = Company::query()->findOrFail($id);
  49. return new CompanyResource($field);
  50. }
  51. public function update(Request $request,string $id){
  52. $company = Company::findOrFail($id);
  53. $company->email =$request->email;
  54. $company->save();
  55. return $this->noContent();
  56. }
  57. public function destroy(string $id)
  58. {
  59. $company = Company::findOrFail($id);
  60. $company->delete();
  61. return $this->noContent();
  62. }
  63. //注册用户时注册公司
  64. public function registerStore(FileAssociationService $service,CreateOrUpdateRequest $request)
  65. {
  66. $company = new Company();
  67. $service->check(
  68. $request->get("file_ids",[]),
  69. FileObjectType::COMPANY,
  70. $request->get("file_uuid"),
  71. );
  72. $company->fill([
  73. ...$request->all(),
  74. ]);
  75. $company->save();
  76. $service->association($company->id);
  77. return $this->created();
  78. }
  79. //公司审核
  80. public function action(ActionRequest $request, string $id){
  81. $company = Company::findOrFail($id);
  82. $status=$request->status;
  83. match($status) {
  84. 1 => $company->review_status=CompanyReviewStatus::APPROVED,
  85. default => $company->review_status=CompanyReviewStatus::REJECTED,
  86. };
  87. $company->save();
  88. return $this->noContent();
  89. }
  90. }