service = new ApprovalService(); } /** * 获取审批列表 */ public function list(Request $request): Response { $userId = $this->getUserId($request); $type = $request->get('type', 'my'); $page = (int) $request->get('page', 1); $pageSize = (int) $request->get('page_size', 20); $result = $this->service->getList($userId, $type, $page, $pageSize); return $this->success($result); } /** * 获取审批详情 */ public function detail(Request $request): Response { $id = (int) $request->route('id'); $approval = \App\Model\ApprovalOrder::with(['flow', 'applicant', 'records']) ->findOrFail($id); return $this->success($approval); } /** * 审批通过 */ public function approve(Request $request): Response { $userId = $this->getUserId($request); $id = (int) $request->route('id'); $data = $request->post(); $data = $data ?? []; $comment = $data['comment'] ?? null; try { $approval = $this->service->approve($id, $userId, $comment); return $this->success($approval, '已通过'); } catch (\Exception $e) { return $this->error($e->getMessage()); } } /** * 审批拒绝 */ public function reject(Request $request): Response { $userId = $this->getUserId($request); $id = (int) $request->route('id'); $data = $request->post(); $data = $data ?? []; $comment = $data['comment'] ?? null; try { $approval = $this->service->reject($id, $userId, $comment); return $this->success($approval, '已拒绝'); } catch (\Exception $e) { return $this->error($e->getMessage()); } } /** * 撤销申请 */ public function cancel(Request $request): Response { $userId = $this->getUserId($request); $id = (int) $request->route('id'); try { $approval = $this->service->cancel($id, $userId); return $this->success($approval, '已撤销'); } catch (\Exception $e) { return $this->error($e->getMessage()); } } }