middleware('checkUserPermission'); $this->complaintService = $complaintService; } /** * 列表 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Repository\Exceptions\RepositoryException */ public function index(Request $request) { $request['user_id'] = login_user_id(); $complaints = $this->complaintService->handleList($request); return $this->response->success($complaints); } /** * 新增 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function store(Request $request) { $data = $this->validateData($request, [ 'complaint_name' => 'required|string|max:200', 'complaint_phone' => 'required|integer', 'content' => 'nullable|sometimes', 'relevant_documents' => 'nullable|array' ], [ 'complaint_name' => '投诉人', 'complaint_phone' => '手机号', 'content' => '投诉内容', 'relevant_documents' => '相关文件', ]); $data['user_id'] = login_user_id(); $complaint = $this->complaintService->handleStore($data); return $this->response->created($complaint, '创建成功'); } /** * 详情 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function show(Request $request) { $this->validate($request, ['id' => 'required|integer']); $complaint = $this->complaintService->handleProfile($request->get('id')); return $this->response->success($complaint); } /** * 撤銷投訴 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function revoke(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer' ], []); $data['status'] = ModelStatusEnum::PAUSE; $complaint = $this->complaintService->revoke($data); //return $this->response->success($complaint, '撤销成功'); if ($complaint) { return $this->response->ok('撤销成功'); } return $this->response->fail('撤销失败'); } /** * 满意度 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function evaluation(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer', 'deal_evaluation' => 'required|integer' ], [ 'id' => 'id', 'deal_evaluation' => '满意度', ]); $complaint = $this->complaintService->evaluation($data); return $this->response->success($complaint, '评价成功'); } /** * 办理结果反馈 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function feedback(Request $request) { $data = $this->validateData($request, [ 'id' => 'required|integer', 'feedback' => 'required|string', ], [ 'id' => 'id', 'feedback' => '结果反馈', ]); $complaint = $this->complaintService->feedback($data); return $this->response->success($complaint, '反馈成功'); } /** * 用户投诉数量查询--客户端 * @param Request $request * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource * @throws \Prettus\Validator\Exceptions\ValidatorException */ public function nums(Request $request) { $data = $this->complaintService->nums($request); return $this->response->success($data); } /** * 吹哨处理完结消息通知--客户端 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function messages(Request $request) { $data = $this->complaintService->messages($request); return $this->response->success($data); } /** * 吹哨处理完结消息详情--客户端 * @param Request $request * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource */ public function message(Request $request) { $req = $this->validateData($request, [ 'id' => 'required|integer', ], [ 'id' => 'id', ]); $resp = $this->complaintService->message($req); return $this->response->success($resp, '查询成功'); } }