logic = new UserComplaintLogic(); parent::__construct(); } #[Permission('用户投诉配置选项', 'core:user:complaint:configs')] public function configs(Request $request): Response { return $this->success($this->logic->configOptions()); } #[Permission('用户投诉列表', 'core:user:complaint:index')] public function index(Request $request): Response { return $this->success($this->logic->indexList($request->more([ ['config_id', 0], ['start_date', ''], ['end_date', ''], ]))); } #[Permission('用户投诉详情', 'core:user:complaint:read')] public function read(Request $request): Response { return $this->success($this->logic->detail( (int) $request->input('config_id', 0), (string) $request->input('complaint_id', '') )); } #[Permission('用户投诉协商记录', 'core:user:complaint:history')] public function history(Request $request): Response { return $this->success($this->logic->history( (int) $request->input('config_id', 0), (string) $request->input('complaint_id', '') )); } #[Permission('回复用户投诉', 'core:user:complaint:reply')] public function reply(Request $request): Response { $this->logic->reply($this->body($request)); return $this->success('回复成功'); } #[Permission('完结用户投诉', 'core:user:complaint:complete')] public function complete(Request $request): Response { $this->logic->complete($this->body($request)); return $this->success('投诉已完结'); } private function body(Request $request): array { $data = $request->post(); if ($data === []) { $json = json_decode($request->rawBody(), true); return is_array($json) ? $json : []; } return $data; } }