__handlePropertyHandler(__CLASS__); } #[Inject] protected ValidatorFactoryInterface $validationFactory; /** * @var PublicRpcServiceInterface */ #[Inject] private $publicServiceClient; /** * 地区 * @return array */ public function getDistrictList() { $pid = $this->request->input("pid", 0); $data = ['pid' => $pid]; $result = $this->publicServiceClient->getDistrictList($data); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取用户等级 * @return array */ public function getUserLevelList() { $requireData = $this->request->all(); $result = $this->publicServiceClient->getUserLevelList($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 上传图片 * @return array */ public function uploadFile() { $urlN = new CommonService(); $file = $this->request->file('file'); try { if ($file == null) { return Result::error("未找到上传文件"); } $data = CommonService::uploadFile($file, ['png', 'jpg', 'png', 'jpeg', 'gif', 'xls', 'xlsx', 'pdf', 'xls', 'xlsx', 'doc', 'docx', 'ppt', 'zip', 'pptx', 'mp4', 'flv'], 'image'); $data['imgUrl'] = $urlN->imgUrl($data['src']); return Result::success($data, '上传成功'); } catch (\Exception $e) { return Result::error($e->getMessage()); } } /** * 添加用户等级 * @return array */ public function addUserLevel() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['name' => 'required'], ['name.required' => '等级名不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->addUserLevel($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 删除用户等级 * @return array */ public function delUserLevel() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'ID不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->delUserLevel($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 更新用户等级 * @return array */ public function updateUserLevel() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'id' => 'required'], ['id.required' => 'ID不能为空', 'name.required' => '名称不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->updateUserLevel($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 城市列表 * @return array */ public function getCityList() { $requireData = $this->request->all(); var_dump($requireData); $result = $this->publicServiceClient->getDistrictList($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 投诉举报 * @return void */ public function addComplaint() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['title' => 'required', 'nature' => 'required', 'nature_level' => 'required', 'type' => 'required', 'name' => 'required', 'mobile' => 'required', 'describe' => 'required', 'type_level' => 'required'], ['title.required' => '标题不能为空', 'nature.required' => '性质不能为空', 'nature_level.required' => '进度不能为空', 'type.required' => '类型不能为空', 'name.required' => '姓名不能为空', 'mobile.required' => '手机号码不能为空', 'describe.required' => '详细说明不能为空', 'type_level.required' => '详细说明不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData = $this->request->all(); $requireData['user_id'] = $this->UserId; $result = $this->publicServiceClient->addLetterOfComplaint($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 更新投诉举报信息 * @return array */ public function upComplaint() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } var_dump($requireData); if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) { $requireData['admin_id'] = $this->UserId; } $result = $this->publicServiceClient->upLetterOfComplaint($requireData); return $result ? Result::success([]) : Result::error($result['message']); } /** * 获取投诉列表 * @return array */ public function getComplaint() { $requireData = $this->request->all(); $requireData['user_id'] = $this->UserId; if (isset($data['is_admin']) && !empty($data['is_admin'])) { unset($requireData['user_id']); } $result = $this->publicServiceClient->getLetterOfComplaint($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取投诉举报信息 * @return array */ public function getLetterOfComplaintInfo() { $requireData = $this->request->all(); $requireData['user_id'] = $this->UserId; if (isset($data['is_admin']) && !empty($data['is_admin'])) { unset($requireData['user_id']); } $result = $this->publicServiceClient->getLetterOfComplaintInfo($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 删除投诉举报信息 * @return array */ public function delLetterOfComplaint() { $requireData = $this->request->all(); $requireData['user_id'] = $this->UserId; if (isset($data['is_admin']) && !empty($data['is_admin'])) { unset($requireData['user_id']); } $result = $this->publicServiceClient->delLetterOfComplaint($requireData); return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取投诉分类信息 * @return array */ public function getLetterType() { $requireData = $this->request->all(); $result = $this->publicServiceClient->getLetterType($requireData); $rep = PublicData::buildMenuTree($result['data']); return $rep ? Result::success($rep) : Result::error("查询失败"); } public function downloadFile(RequestInterface $request, ResponseInterface $response) { //验证是否有传参数 $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, ['files' => 'required'], ['files.required' => '文件不能为空']); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['fileName'] = $requireData['fileName'] ?? '政讯通'; //打包文件 $zip = new ZipArchive(); $fileType = 'zip'; $date = date('Ymd'); $filePath = $fileType . DIRECTORY_SEPARATOR . $date; $allDir = 'public' . DIRECTORY_SEPARATOR . $filePath; if (!is_dir($allDir)) { if (!mkdir($allDir, 0755, true)) { return Result::error('创建文件夹失败'); } } $fileName = $requireData['fileName'] . time() . mt_rand(1, 1000000) . '.zip'; $zipFileName = $allDir . DIRECTORY_SEPARATOR . $requireData['fileName'] . time() . mt_rand(1, 1000000) . '.zip'; // $zipFileName = 'public/zip/files.zip'; if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) { // 将要下载的文件逐个添加到zip文件中 $string = trim($requireData['files'], "[]'"); // 去掉最外层的方括号和单引号(注意:这里假设了单引号,如果是双引号则替换为 ") $string = str_replace("'", '', $string); // 去掉所有剩余的单引号(如果原字符串中使用的是双引号,则替换为双引号) $filePaths = explode(',', $string); foreach ($filePaths as $filePathu) { $attachmentItem = 'public' . $filePathu; $zip->addFile($attachmentItem, pathinfo($attachmentItem, PATHINFO_BASENAME)); } // 关闭zip文件 $zip->close(); // 将zip文件提供给用户进行下载 // readfile($zipFileName); $fileUrlName = explode("public", $zipFileName); return Result::success(['fileUrl' => env('HOST') . $fileUrlName[1]]); } else { return Result::error('无法创建zip文件'); } // 假设我们从请求中获取一个名为'filename'的查询参数 // $filenameParam = $request->input('filename', 'files.zip'); // 如果没有提供'filename',则使用'default_filename.csv' // // // 构造完整的文件路径(这里假设文件都存放在public目录下) // $filePath = BASE_PATH . '/public/zip/files.zip'; // 注意:这里应该是你实际文件的路径 // // // 注意:download方法的第二个参数是可选的,用于指定下载时的文件名 // // 如果不需要动态设置下载文件名,可以省略第二个参数或传递null // return $response->download($filePath, $filenameParam); } }