LaborCompanyController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\LaborCompany;
  4. use App\Warehouse;
  5. use Illuminate\Contracts\Foundation\Application;
  6. use Illuminate\Http\RedirectResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Routing\Redirector;
  9. use Illuminate\Support\Facades\Auth;
  10. use Illuminate\Support\Facades\Gate;
  11. use Illuminate\Support\Facades\Validator;
  12. use Illuminate\Validation\ValidationException;
  13. class LaborCompanyController extends Controller
  14. {
  15. public function index()
  16. {
  17. if (!Gate::allows('劳务所-查询')) {
  18. return redirect(url('/'));
  19. }
  20. $laborCompanys = LaborCompany::query()
  21. ->with(['warehouse'])
  22. ->orderBy('id', 'desc')
  23. ->paginate(35);
  24. return view('maintenance.laborCompany.index', ['laborCompanys' => $laborCompanys]);
  25. }
  26. public function create()
  27. {
  28. if (!Gate::allows('劳务所-录入')) {
  29. return redirect(url('/'));
  30. }
  31. $warehouses = Warehouse::all();
  32. return view('maintenance.laborCompany.create', compact('warehouses'));
  33. }
  34. public function store(Request $request)
  35. {
  36. if (!Gate::allows('劳务所-录入')) {
  37. return redirect(url('/'));
  38. }
  39. $this->validatorCreate($request->all())->validate();
  40. $laborCompany = new LaborCompany($request->all());
  41. $laborCompany->save();
  42. app('LaborCompanyService')->createRole($laborCompany);
  43. app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->toArray()), Auth::user()['id']);
  44. return redirect('maintenance/laborCompany/create')->with('successTip', "成功录入劳务所“{$request->input('name')}”");
  45. }
  46. protected function validatorCreate(array $data)
  47. {
  48. return Validator::make($data, [
  49. 'name' => ['required', 'string', 'max:50', 'unique:labor_companies'],
  50. ]);
  51. }
  52. protected function validatorUpdate(array $data)
  53. {
  54. return Validator::make($data, [
  55. 'name' => ['required', 'string', 'max:50'],
  56. ]);
  57. }
  58. /**
  59. * Display the specified resource.
  60. *
  61. * @param $laborCompany
  62. * @return
  63. */
  64. public function show(LaborCompany $laborCompany)
  65. {
  66. //
  67. }
  68. /**
  69. * Show the form for editing the specified resource.
  70. *
  71. * @param $laborCompany
  72. * @return
  73. */
  74. public function edit(LaborCompany $laborCompany)
  75. {
  76. if (!Gate::allows('劳务所-编辑')) {
  77. return redirect(url('/'));
  78. }
  79. $warehouses = Warehouse::all();
  80. return view('maintenance.laborCompany.edit', compact('laborCompany', 'warehouses'));
  81. }
  82. /**
  83. * @param Request $request
  84. * @param LaborCompany $laborCompany
  85. * @return array|Application|RedirectResponse|Redirector|void
  86. * @throws ValidationException
  87. */
  88. public function update(Request $request, LaborCompany $laborCompany)
  89. {
  90. if (!Gate::allows('劳务所-编辑')) {
  91. return redirect(url('/'));
  92. }
  93. if (!empty($request->input('name'))) {
  94. $this->validatorUpdate($request->all())->validate();
  95. $laborCompany->fill($request->all());
  96. $laborCompany->update();
  97. app('LaborCompanyService')->updateRole($laborCompany);
  98. app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->toArray()), Auth::user()['id']);
  99. return redirect('maintenance/laborCompany/')->with('successTip', "成功修改劳务所“{$laborCompany['name']}”!");
  100. } else if (!empty($request->input('status'))) {
  101. $laborCompany = LaborCompany::query()->find($request->input('id'));
  102. $laborCompany->status = $request->input('status');
  103. $laborCompany->save();
  104. return ['success' => true, 'data' => ['status' => $request->input('status')]];
  105. }
  106. }
  107. /**
  108. * Remove the specified resource from storage.
  109. *
  110. * @param $laborCompany
  111. * @return array
  112. * @throws
  113. */
  114. public function destroy(LaborCompany $laborCompany)
  115. {
  116. if (!Gate::allows('劳务所-删除')) {
  117. return redirect(url('/'));
  118. }
  119. app('LogService')->log(__METHOD__, __FUNCTION__, $laborCompany->toJson(), Auth::user()['id']);
  120. $re = $laborCompany->delete();
  121. return ['success' => $re];
  122. }
  123. }