| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- namespace App\Http\Controllers;
- use App\Components\AsyncResponse;
- use App\Exceptions\WarningException;
- use App\Filters\MaterialFilters;
- use App\Material;
- use Illuminate\Http\Request;
- class MaterialController extends Controller
- {
- // 耗材
- use AsyncResponse;
- public function index(Request $request,MaterialFilters $filter)
- {
- $this->gate('耗材');
- $materials = Material::query()->orderByDesc('id')->filter($filter)->paginate($request['paginate'] ?? 50);
- return view('maintenance/material/index',compact('materials'));
- }
- public function storeApi(Request $request):array
- {
- $this->gate('耗材-编辑');
- $material = Material::query()->where('code',$request['code'])->first();
- if($material)return ['success' => false,'message'=>'code对应的耗材已存在'];
- try {
- $material = Material::query()->create($request->all(['code', 'name']));
- return ['success'=>true,'data'=>$material];
- } catch (\Exception $e) {
- return ['success' => false,'message' => $e->getMessage()];
- }
- }
- public function updateApi(Request $request):array
- {
- $this->gate('耗材-编辑');
- $material = Material::query()->find($request['id']);
- try {
- $material->update($request->all(['code', 'name']));
- return ['success' => true,'date'=>$material];
- } catch (WarningException $e) {
- return ['success'=>false,'message'=>$e->getMessage()];
- }
- }
- public function destroyApi($id):array
- {
- $this->gate('耗材-删除');
- /** @var Material $material */
- $material = Material::query()->find($id);
- try {
- $bool = $material->delete();
- if($bool>0)return ['success'=>true];
- else return ['success'=>false,'message'=>'删除失败'];
- } catch (WarningException $e) {
- return ['success'=>false,'message'=>$e->getMessage()];
- }
- }
- }
|