with(['initiator', 'handle', 'uploadFile', 'processes'])->filter($filters)->orderByDesc('demands.id')->paginate($request['paginate'] ?? 50); return view('maintenance.demand.index', compact('demands')); } /** * @param DemandRequest $request * @param DemandService $service */ public function storeApi(DemandRequest $request, DemandService $service) { /** @var Demand $demand */ $params = $request->all(); $params['initiator'] = Auth::user()['id']; $demand = Demand::query()->create($params); if ($demand) { $file = $request->file('file'); if (isset($file)) $service->saveUPLoadFile($demand, $file); $this->success($demand); } else { $this->error('需求创建出现异常'); } } /** * @param DemandRequest $request */ public function updateApi(DemandRequest $request) { // 编辑权限 $this->gate('需求管理-问题-编辑'); $demand = Demand::query()->find($request['id'])->first(); if($demand['initiator'] != Auth::user()['id']) $this->error('非当前需求创建人不可修改'); $bool = $demand->update($request->all()); if ($bool) { $demand->loadMissing('authority', 'initiator', 'handle', 'uploadFile', 'processes'); $this->success($demand); } $this->error('需求更新出现异常'); } /** * @param DemandRequest $request * @param DemandService $service */ public function uploadFileApi(DemandRequest $request, DemandService $service) { $demand = Demand::query()->find($request['id'])->first(); $service->saveUPLoadFile($demand, $request->file('file')); $demand->loadMissing('authority', 'initiator', 'handle', 'uploadFile', 'processes'); $this->success($demand); } /** * 删除需求 * * @param DemandRequest $request */ public function destroyApi(DemandRequest $request) { $this->gate('需求管理-问题-删除'); $demand = Demand::query()->find($request['id']); try { $bool = $demand->delete(); if ($bool) $this->success(); else $this->error('删除失败'); } catch (\Exception $e) { $this->error($e->getMessage()); } } /** * 完结需求 * * @param DemandRequest $request * @param DemandService $service */ public function finishApi(DemandRequest $request,DemandService $service) { $demand = Demand::query()->find($request['id'])->first(); $result = $service->finishDemand($demand); if($result['success']){ $this->success($result['data']); } $this->error($result['message']); } /** * 需求认领 * * @param DemandRequest $request * @param DemandService $service */ public function claimApi(DemandRequest $request,DemandService $service) { /** @var Demand $demand */ $demand = Demand::query()->where('id',$request['id'])->first(); $handler = Auth::user()['id']; $result = $service->claimDemand($demand,$handler); if($result['success']){ $this->success($result['data']); } $this->error($result['message']); } }