logic = new UserFeedbackLogic(); $this->validate = new UserFeedbackValidate(); parent::__construct(); } #[Permission('用户反馈列表', 'core:user:feedback:index')] public function index(Request $request): Response { return $this->success($this->logic->indexList($this->filters($request))); } #[Permission('用户反馈详情', 'core:user:feedback:read')] public function read(Request $request): Response { return $this->success($this->logic->readFeedback((int) $request->input('id', 0))); } #[Permission('更新用户反馈状态', 'core:user:feedback:update')] public function update(Request $request): Response { $data = $this->body($request); $this->validate('status', $data); $this->logic->updateStatus($data, (int) $this->adminId, $this->operatorName()); return $this->success('处理状态已更新'); } #[Permission('回复用户反馈', 'core:user:feedback:reply')] public function reply(Request $request): Response { $data = $this->body($request); $this->validate('reply', $data); return $this->success( $this->logic->reply($data, (int) $this->adminId, $this->operatorName()), '回复成功' ); } #[Permission('导出用户反馈', 'core:user:feedback:export')] public function export(Request $request): Response { return $this->logic->export($this->filters($request)); } private function filters(Request $request): array { return $request->more([ ['status', ''], ['type', ''], ['device_type', ''], ['phone', ''], ['merchant', ''], ['device_sn', ''], ['content', ''], ['start_date', ''], ['end_date', ''], ]); } private function body(Request $request): array { $data = $request->post(); if ($data === []) { $json = json_decode($request->rawBody(), true); return is_array($json) ? $json : []; } return $data; } private function operatorName(): string { return (string) (($this->adminInfo['realname'] ?? '') ?: ($this->adminInfo['username'] ?? $this->adminName)); } }