OwnerMaterialController.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Filters\OwnerMaterialFilters;
  5. use App\Material;
  6. use App\OwnerMaterial;
  7. use App\Services\OwnerService;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. class OwnerMaterialController extends Controller
  11. {
  12. use AsyncResponse;
  13. public function index(Request $request,OwnerMaterialFilters $filters)
  14. {
  15. $ownerMaterials = OwnerMaterial::query()->with(['owner','material','initiator','uploadFile'])->orderByDesc('id')->filter($filters)->paginate($request['paginate'] ?? 50);
  16. $owners = app(OwnerService::class)->getAuthorizedOwners();
  17. $materials = Material::all();
  18. return view('/maintenance/ownerMaterial/index',compact('ownerMaterials','owners','materials'));
  19. }
  20. public function storeApi(Request $request):array
  21. {
  22. $params = $request->all(['owner_id', 'material_id', 'material_code', 'size', 'special', 'specification']);
  23. $params['initiator'] = Auth::user()['id'];
  24. try {
  25. $material = OwnerMaterial::query()->create($params);
  26. if ($material) return ['success' => true,'data' => $material->loadMissing(['owner','material','initiator','uploadFile'])];
  27. else return ['success' => false, 'message' => '添加失败'];
  28. } catch (\Exception $e) {
  29. return ['success' => false,'message' => $e->getMessage()];
  30. }
  31. }
  32. public function updateApi(Request $request)
  33. {
  34. //$this->gate("xx");
  35. $material = OwnerMaterial::query()->find($request['id']);
  36. if(!$material)$this->error("对应的项目耗材没有找到");
  37. $bool = $material->update($request->all(['owner_id', 'material_id', 'material_code', 'size', 'special', 'specification']));
  38. if($bool==0)$this->error("更新异常");
  39. $this->success($material->loadMissing(['owner','material','initiator','uploadFile']));
  40. }
  41. public function destroyApi($id)
  42. {
  43. $ownerMaterial = OwnerMaterial::query()->find($id);
  44. if(!$ownerMaterial)$this->error('对应的项目耗材没有找到');
  45. $ownerMaterial->delete();
  46. $this->success();
  47. }
  48. }