MaterialController.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Exceptions\WarningException;
  4. use App\Filters\MaterialFilters;
  5. use App\Material;
  6. use Illuminate\Http\Request;
  7. class MaterialController extends Controller
  8. {
  9. // 耗材
  10. public function index(Request $request,MaterialFilters $filter)
  11. {
  12. $materials = Material::query()->orderByDesc('id')->filter($filter)->paginate($request['paginate'] ?? 50);
  13. return view('maintenance/material/index',compact('materials'));
  14. }
  15. public function storeApi(Request $request):array
  16. {
  17. $material = Material::query()->where('code',$request['code'])->first();
  18. if($material)return ['success' => false,'message'=>'code对应的耗材已存在'];
  19. try {
  20. $material = Material::query()->create($request->all(['code', 'name']));
  21. return ['success'=>true,'data'=>$material];
  22. } catch (\Exception $e) {
  23. return ['success' => false,'message' => $e->getMessage()];
  24. }
  25. }
  26. public function updateApi(Request $request):array
  27. {
  28. $material = Material::query()->find($request['id']);
  29. try {
  30. $material->update($request->all(['code', 'name']));
  31. return ['success' => true,'date'=>$material];
  32. } catch (WarningException $e) {
  33. return ['success'=>false,'message'=>$e->getMessage()];
  34. }
  35. }
  36. public function destroyApi($id):array
  37. {
  38. /** @var Material $material */
  39. $material = Material::query()->find($id);
  40. try {
  41. $bool = $material->delete();
  42. if($bool>0)return ['success'=>true];
  43. else return ['success'=>false,'message'=>'删除失败'];
  44. } catch (WarningException $e) {
  45. return ['success'=>false,'message'=>$e->getMessage()];
  46. }
  47. }
  48. }