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, ['txt','png', 'jpg', 'png', 'jpeg', 'gif', 'xls', 'xlsx', 'pdf', 'xls', 'xlsx', 'doc', 'docx', 'ppt', 'zip', 'pptx', 'mp4', 'flv'], 'image'); var_dump($data); if (isset($data['code'])&&$data['code'] != 200) { return Result::error($data['message']); } $data['imgUrl'] = $urlN->imgUrl($data['src']); $fileName = $file->getClientFilename(); $data['oldFileName'] = $fileName; 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_level0' => 'required', 'name' => 'required', 'mobile' => 'required', 'describe' => 'required', ], [ 'title.required' => '标题不能为空', 'nature.required' => '类型不能为空', 'nature_level0.required' => '类型进度不能为空', 'name.required' => '姓名不能为空', 'mobile.required' => '手机号码不能为空', 'describe.required' => '详细说明不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); if ($requireData['id']) { $result = $this->publicServiceClient->userUpLetterOfComplaint($requireData); } else { $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'] = Context::get("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'] = Context::get("UserId"); if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) { unset($requireData['user_id']); } $result = $this->publicServiceClient->getLetterOfComplaint($requireData); if($result['code']==200){ foreach ($result['data']['rows']as $key=>$val){ $result['data']['rows'][$key]['created_at'] = date("Y-m-d",strtotime($val['created_at'])); } } return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取投诉举报信息 * @return array */ public function getLetterOfComplaintInfo() { $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); if (isset($requireData['is_admin']) && !empty($requireData['is_admin'])) { unset($requireData['user_id']); } $result = $this->publicServiceClient->getLetterOfComplaintInfo($requireData); if ($result) { $result['data']['judgment'] = $result['data']['judgment'] ? json_decode($result['data']['judgment']) : ''; $result['data']['audio_and_video'] = $result['data']['audio_and_video'] ? json_decode($result['data']['audio_and_video']) : ''; $result['data']['contract'] = $result['data']['contract'] ? json_decode($result['data']['contract']) : ''; $result['data']['qualifications'] = $result['data']['qualifications'] ? json_decode($result['data']['qualifications']) : ''; } return $result ? Result::success($result['data']) : Result::error($result['message']); } /** * 删除投诉举报信息 * @return array */ public function delLetterOfComplaint() { $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); if (isset($requireData['is_admin']) && !empty($requireData['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(); $validator = $this->validationFactory->make( $requireData, [ 'type' => 'required', ], [ 'type.required' => '类型不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->getLetterType($requireData); $rep = PublicData::buildMenuTree($result['data']); return $rep ? Result::success($rep) : Result::error("查询失败"); } /** * @return array */ public function getLetterTypeChildren() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'type' => 'required', 'pid' => 'required', ], [ 'type.required' => '类型不能为空', 'pid.required' => 'PID不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->getLetterType($requireData); return $result['code']==200 ? Result::success($result['data']) : Result::error("查询失败"); } public function downloadFile(RequestInterface $request, ResponseInterface $response) { // 放开执行时限,避免大量文件导致的超时 ignore_user_abort(true); @set_time_limit(0); // 验证参数 $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'] ?? '政讯通'; // 归一化文件与名称 /** @var array $files */ $files = []; if (is_array($requireData['files'])) { // 保留原有索引,避免与 names 对应关系错位 $files = array_filter($requireData['files'], fn($v) => is_string($v) && $v !== ''); } elseif (is_string($requireData['files'])) { $files = [$requireData['files']]; } $names = []; if (isset($requireData['names']) && is_array($requireData['names'])) { $names = $requireData['names']; } if (count($files) === 0) { return Result::error('文件不能为空'); } // 预下载远程文件(并发) $remoteIndexes = []; foreach ($files as $index => $path) { if (is_string($path) && filter_var($path, FILTER_VALIDATE_URL)) { $remoteIndexes[] = $index; } } $tempFiles = []; if (!empty($remoteIndexes)) { $concurrency = (int) env('ZIP_DOWNLOAD_CONCURRENCY', 5); $tasks = []; foreach ($remoteIndexes as $idx) { $url = $files[$idx]; $tasks[] = function () use ($idx, $url) { $temp = $this->downloadRemoteToTemp($url); return [$idx, $temp]; }; } try { $results = parallel($concurrency, $tasks); foreach ($results as $result) { if (is_array($result) && count($result) === 2) { [$i, $temp] = $result; if (is_string($temp) && $temp !== '' && is_file($temp)) { $tempFiles[$i] = $temp; } } } } catch (\Throwable $e) { // 并发下载异常不终止,尽量继续处理其他文件 } } // 创建 ZIP 目录与文件 $zip = new ZipArchive(); $fileType = 'zip'; $date = date('Ymd'); $filePath = $fileType . DIRECTORY_SEPARATOR . $date; $allDir = 'public' . DIRECTORY_SEPARATOR . $filePath; if (!is_dir($allDir) && !mkdir($allDir, 0755, true) && !is_dir($allDir)) { // 清理已下载的临时文件 foreach ($tempFiles as $temp) { @unlink($temp); } return Result::error('创建文件夹失败'); } $zipFileName = $allDir . DIRECTORY_SEPARATOR . $requireData['fileName'] . time() . mt_rand(1, 1000000) . '.zip'; $addedAny = false; $zipOpened = false; try { if ($zip->open($zipFileName, ZipArchive::CREATE) !== true) { return Result::error('无法创建zip文件'); } $zipOpened = true; foreach ($files as $index => $originalPath) { if (!is_string($originalPath) || $originalPath === '') { continue; } // 决定压缩包内的文件名 $zipInnerName = $names[$index] ?? ''; if (!is_string($zipInnerName) || $zipInnerName === '') { if (filter_var($originalPath, FILTER_VALIDATE_URL)) { $zipInnerName = basename(parse_url($originalPath, PHP_URL_PATH) ?: ('file_' . ($index + 1) . $this->getFileExtension($originalPath))); } else { $zipInnerName = basename($originalPath); if ($zipInnerName === '' || $zipInnerName === '.' || $zipInnerName === '..') { $zipInnerName = 'file_' . ($index + 1) . $this->getFileExtension($originalPath); } } } // 远程:使用预下载的临时文件 if (array_key_exists($index, $tempFiles)) { $tempPath = $tempFiles[$index]; if (is_file($tempPath) && is_readable($tempPath)) { if ($zip->addFile($tempPath, $zipInnerName)) { $addedAny = true; } } continue; } // 本地文件处理 $localPath = $originalPath; if (!file_exists($localPath)) { // 尝试添加 public 前缀 $fullPath = 'public/' . ltrim($localPath, '/'); if (!file_exists($fullPath)) { // 尝试使用绝对路径 $fullPath = BASE_PATH . '/public/' . ltrim($localPath, '/'); if (!file_exists($fullPath)) { continue; // 跳过不存在的文件 } } $localPath = $fullPath; } if (is_file($localPath) && is_readable($localPath)) { if ($zip->addFile($localPath, $zipInnerName)) { $addedAny = true; } } } } finally { // 关闭 zip if ($zipOpened) { $zip->close(); } elseif (file_exists($zipFileName) && filesize($zipFileName) === 0) { // 若未成功打开或写入,确保不会遗留空文件 @unlink($zipFileName); } // 清理临时文件 foreach ($tempFiles as $temp) { @unlink($temp); } } if (!$addedAny || !file_exists($zipFileName)) { return Result::error('打包失败或没有可用的文件'); } // 返回可下载地址 $fileUrlName = explode('public', $zipFileName); return Result::success(['fileUrl' => env('HOST') . $fileUrlName[1]]); } /** * 添加远程文件到zip */ private function addRemoteFileToZip($zip, $url, $fileName = null): void { try { // 创建临时文件 $tempFile = tempnam(sys_get_temp_dir(), 'remote_file_'); // 设置更长的超时时间和更好的下载参数 $context = stream_context_create([ 'http' => [ 'timeout' => 120, // 增加到120秒 'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'follow_location' => true, // 允许重定向 'max_redirects' => 5, 'protocol_version' => 1.1, 'header' => [ 'Accept: */*', 'Accept-Encoding: gzip, deflate', 'Connection: keep-alive' ] ], 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ]); // 使用cURL作为备选方案 $fileContent = $this->downloadFileWithCurl($url); if ($fileContent === false) { // 如果cURL失败,尝试file_get_contents $fileContent = file_get_contents($url, false, $context); } if ($fileContent === false) { error_log("Failed to download remote file: " . $url); return; // 下载失败,跳过 } // 验证文件内容 if (empty($fileContent) || strlen($fileContent) < 100) { error_log("Downloaded file is too small or empty: " . $url); return; } // 写入临时文件并验证 $bytesWritten = file_put_contents($tempFile, $fileContent); if ($bytesWritten === false || $bytesWritten !== strlen($fileContent)) { error_log("Failed to write file content: " . $url); return; } // 验证文件是否可读 if (!is_readable($tempFile) || filesize($tempFile) < 100) { error_log("Temporary file is not readable or too small: " . $tempFile); return; } // 获取文件名 if ($fileName === null) { $fileName = basename(parse_url($url, PHP_URL_PATH)); if (empty($fileName)) { $fileName = 'remote_file_' . time() . '.jpg'; } } // 添加到zip并验证 if (!$zip->addFile($tempFile, $fileName)) { error_log("Failed to add file to zip: " . $fileName); return; } } catch (\Exception $e) { // 记录错误但继续处理其他文件 error_log("Failed to download remote file: " . $url . " - " . $e->getMessage()); } } /** * 使用cURL下载文件 */ private function downloadFileWithCurl($url): string|false { if (!function_exists('curl_init')) { return false; } $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 120, // 120秒超时 CURLOPT_CONNECTTIMEOUT => 30, // 连接超时30秒 CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 5, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_ENCODING => '', // 自动处理编码 CURLOPT_HTTPHEADER => [ 'Accept: image/*, */*', 'Accept-Encoding: gzip, deflate', 'Connection: keep-alive', 'Cache-Control: no-cache' ] ]); $content = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $contentLength = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD); $actualLength = strlen($content); curl_close($ch); // 检查HTTP状态码和内容长度 if ($content === false || $httpCode !== 200) { error_log("cURL download failed for URL: $url, HTTP Code: $httpCode"); return false; } // 检查内容长度是否匹配 if ($contentLength > 0 && $actualLength !== $contentLength) { error_log("Content length mismatch for URL: $url, Expected: $contentLength, Actual: $actualLength"); return false; } // 检查文件是否为空或太小 if (empty($content) || $actualLength < 100) { error_log("File too small or empty for URL: $url, Size: $actualLength"); return false; } return $content; } /** * 下载远程文件到临时文件(流式写入,节省内存),成功返回临时文件路径,失败返回 null */ private function downloadRemoteToTemp(string $url, int $timeoutSeconds = 120): ?string { // 优先使用 cURL 流式写入 if (function_exists('curl_init')) { $tempFile = tempnam(sys_get_temp_dir(), 'remote_file_'); if ($tempFile === false) { return null; } $fp = @fopen($tempFile, 'wb'); if ($fp === false) { @unlink($tempFile); return null; } $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_FILE => $fp, // 直接写文件 CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 5, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => $timeoutSeconds, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', CURLOPT_HTTPHEADER => [ 'Accept: */*', 'Connection: keep-alive', 'Cache-Control: no-cache', ], ]); $ok = curl_exec($ch); $httpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); fclose($fp); if ($ok !== false && $httpCode === 200 && is_file($tempFile) && filesize($tempFile) >= 100) { return $tempFile; } @unlink($tempFile); } // 退化为 stream_context + file_get_contents 方案 $context = stream_context_create([ 'http' => [ 'timeout' => $timeoutSeconds, 'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'follow_location' => true, 'max_redirects' => 5, 'protocol_version' => 1.1, 'header' => [ 'Accept: */*', 'Connection: keep-alive' ], ], 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true, ], ]); $content = @file_get_contents($url, false, $context); if ($content === false || strlen((string) $content) < 100) { return null; } $tempFile = tempnam(sys_get_temp_dir(), 'remote_file_'); if ($tempFile === false) { return null; } $bytes = @file_put_contents($tempFile, $content); if ($bytes === false || $bytes < 100) { @unlink($tempFile); return null; } return $tempFile; } /** * 获取文件扩展名 */ private function getFileExtension($filePath): string { $extension = pathinfo($filePath, PATHINFO_EXTENSION); if (empty($extension)) { // 如果是URL,尝试从URL中获取扩展名 if (filter_var($filePath, FILTER_VALIDATE_URL)) { $parsedUrl = parse_url($filePath, PHP_URL_PATH); $extension = pathinfo($parsedUrl, PATHINFO_EXTENSION); } // 如果还是没有扩展名,默认为jpg if (empty($extension)) { $extension = 'jpg'; } } return '.' . $extension; } /** * 检测是否被处理 * @return array */ public function checkMeasure() { $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); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->checkMeasure($requireData); return $result['code'] == 200 ? Result::success() : Result::error("已经处理了"); } /** * 获取职能部门 * @return void */ public function getDepartment() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'pid' => 'required', ], [ 'pid.required' => 'id不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->getDepartment($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败"); } /** * 获取职能部门 * @return array */ public function getZhinengbumenList() { // 获取请求参数 $requireData = $this->request->all(); // 参数验证 $validator = $this->validationFactory->make( $requireData, [ 'page' => 'integer|min:1', 'pagesize' => 'integer|min:1', 'search' => 'string|nullable', ], [ 'page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'pagesize.integer' => 'pagesize 必须是整数', 'pagesize.min' => 'pagesize 必须大于等于 1', 'search.string' => 'search 必须是字符串', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } // 添加用户 ID $requireData['user_id'] = Context::get("UserId"); // 调用服务客户端方法获取分页数据 $result = $this->publicServiceClient->getZhinengbumenList($requireData); // 处理结果 return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败"); } /** * 添加职能部门 * @return array */ public function addZhinengbumen() { // 获取请求参数 $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'name' => 'required|string|regex:/^[\x{4e00}-\x{9fa5}]+$/u', 'pid' => 'required|integer', ], [ 'name.required' => 'name 不能为空', 'name.string' => 'name 必须是字符串', 'name.regex' => 'name 必须是汉字', 'pid.required' => 'pid 不能为空', 'pid.integer' => 'pid 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } // $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->addZhinengbumen($requireData); return $result['code'] == 200 ? Result::success() : Result::error("添加失败"); } /** * 删除职能部门 * @return array */ public function delZhinengbumen() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->delZhinengbumen($requireData); return $result['code'] == 200 ? Result::success() : Result::error("删除失败"); } /** * 职能部门详情 * @return array */ public function getZhinengbumen() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getZhinengbumen($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败"); } /** * 获取职能部门某pid的所有子级,默认0级 * @return array */ public function getPidZhinengbumen() { // 获取请求参数 $requireData = $this->request->all(); // 参数验证 $validator = $this->validationFactory->make( $requireData, [ 'pid' => 'integer|min:0', ], [ 'pid.integer' => 'pid 必须是整数', 'pid.min' => 'pid 必须大于等于 0', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getPidZhinengbumen($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败"); } /** * 修改职能部门名称 * @return array */ public function modZhinengbumen() { $requireData = $this->request->all(); // 参数验证 $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', 'name' => 'required|string|regex:/^[\x{4e00}-\x{9fa5}]+$/u', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', 'name.required' => 'name 不能为空', 'name.string' => 'name 必须是字符串', 'name.regex' => 'name 必须是汉字', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->modZhinengbumen($requireData); return $result['code'] == 200 ? Result::success() : Result::error("修改失败"); } /** * 获取风格 * @return void */ public function getTemplateClassList() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' =>'required|integer', 'pageSize' =>'required|integer', ], [ 'page.required' => '页码不能为空', 'page.integer' => '页码必须为整数', 'pageSize.required' => '每页条数不能为空', 'pageSize.integer' => '每页条数必须为整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } // return Result::success($requireData); $result = $this->publicServiceClient->getTemplateClassList($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 添加风格 * @return void */ public function addTemplateClass() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'name' => 'required', 'keyword' =>'required', 'class_id' =>'required', ], [ 'name.required' => '风格名称不能为空', 'keyword.required' => '风格关键词不能为空', 'class_id' =>'风格编号不能为空' ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->addTemplateClass($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 更新风格 * @return array */ public function upTemplateClass() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'name' => 'required', 'id' => 'required', 'keyword' =>'required', ], [ 'name.required' => '风格名称不能为空', 'id.required' => '风格ID不能为空', 'keyword.required' => '风格关键词不能为空' ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->upTemplateClass($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 删除风格 * @return array */ public function delTemplateClass() { $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->delTemplateClass($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取风格下拉框 * @return void */ public function getTemplateClass() { $requireData = $this->request->all(); $result = $this->publicServiceClient->getTemplateClass($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取皮肤列表 * @return array */ public function getTemplateList() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' => 'required|integer|min:1', 'page_size' => 'required|integer|min:1', 'template_name' => 'string|nullable', 'template_class_id' =>'integer|nullable', ], [ 'page.required' => 'page 不能为空', 'page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'page_size.required' => 'page_size 不能为空', 'page_size.integer' => 'page_size 必须是整数', 'page_size.min' => 'page_size 必须大于等于 1', 'template_name.string' => 'template_name 必须是字符串', 'template_class_id.integer' => 'template_class_id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getTemplateList($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败"); } /** * 获取皮肤详情 * @return array */ public function getTemplateInfo() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getTemplateInfo($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败"); } /** * 删除皮肤 */ public function delTemplate() { $requireData = $this->request->all(); var_dump($requireData); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->delTemplate($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 更新皮肤 */ public function updateTemplate() { $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); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->updateTemplate($requireData); // var_dump($result,'1001010'); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 新增皮肤 */ public function addTemplate() { $requireData = $this->request->all(); $validator = $this->validationFactory->make($requireData, [ 'template_name' => 'required', 'template_class_id' => 'required', 'template_img' => 'required', 'template_keyword' =>'required', 'template_id' =>'required', ], [ 'template_name.required' => '请输入皮肤名称', 'template_class_id.required' => '请选择风格分类', 'template_img.required' => '请上传皮肤图片', 'template_keyword.required' => '请输入皮肤关键词', 'template_id.required' => '请输入皮肤编号', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->addTemplate($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 新增通栏 */ public function addSector() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ // 'id' => 'required|integer', 'template_id'=>'required|integer', 'sector_name'=>'required|string', 'page_type'=>'required', 'sector_img'=>'required|string', ], [ // 'id.required' => 'id 不能为空', // 'id.integer' => 'id 必须是整数', 'template_id.required' => '皮肤id不能为空', 'template_id.integer' => '皮肤id必须是整数', 'sector_name.required' => '通栏名称不能为空', 'sector_name.string' => '通栏名称必须是字符串', 'sector_img.required' => '通栏图片不能为空', 'sector_img.string' => '通栏代码必须是字符串', 'page_type.required' => '页面类型不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->addSector($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取通栏信息 */ public function getSectorInfo() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getSectorInfo($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 删除通栏 */ public function delSector() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->delSector($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 更新通栏 */ public function updateSector() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->updateSector($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取所有皮肤 */ public function getAllTemplate() { $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getAllTemplate($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取所有尺寸 */ public function getAllSize() { $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getAllSize($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取通栏信息列表 */ public function getSectorList(){ $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' => 'required|integer|min:1', 'page_size' => 'required|integer|min:1', ], [ 'page.required' => 'page 不能为空', 'page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'page_size.required' => 'page_size 不能为空', 'page_size.integer' => 'page_size 必须是整数', 'page_size.min' => 'page_size 必须大于等于 1', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getSectorList($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /* * 获取通栏列表 */ public function getComponentInfo() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getComponentInfo($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 删除通栏 */ public function delComponent() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->delComponent($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } public function addComponent() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'component_name' => 'required|string', 'component_type' => 'required|integer', 'component_img' => 'required|string', 'type_id' => 'required|integer', ], [ 'component_name.required' => '组件名称不能为空', 'component_name.string' => '组件名称必须是字符串', 'component_type.required' => '组件编号不能为空', 'component_type.integer' => '组件编号必须是整数', 'component_img.required' => '组件图片不能为空', 'component_img.string' => '组件图片必须是字符串', 'type_id.required' => '组件类型不能为空', 'type_id.integer' => '组件类型必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } // $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->addComponent($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } public function getComponentList() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' => 'required|integer|min:1', 'page_size' => 'required|integer|min:1', ], [ 'page.required' => 'page 不能为空', 'page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'page_size.required' => 'page_size 不能为空', 'page_size.integer' => 'page_size 必须是整数', 'page_size.min' => 'page_size 必须大于等于 1', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getComponentList($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } public function updateComponent() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } // $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->updateComponent($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } public function getWebsiteTemplateInfo() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.integer' => 'id 必须是整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getWebsiteTemplateInfo($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取所有的职能部门 * @return array */ public function getAllDepartment() { $result = $this->publicServiceClient->getDepartment([]); $result['data'] = PublicData::buildMenuTree($result['data']); return $result['code'] == 200 ? Result::success($result['data']) : Result::error("查询失败"); } /** * 获取黑名单列表 * @return array */ public function getBlackWordList() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' => 'integer|min:1', 'pagesize' => 'integer|min:1', 'search' => 'string|nullable', ], [ 'page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'pagesize.integer' => 'pagesize 必须是整数', 'pagesize.min' => 'pagesize 必须大于等于 1', 'search.string' => 'search 必须是字符串', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->getBlackWordList($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 添加黑名单 * @return array */ public function addBlackWord() { $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->addBlackWord($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 删除黑名单 * @return array */ public function delBlackWord() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'name' => 'required', ], [ 'name.required' => 'name不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->delBlackWord($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 修改违禁词 * @return array */ public function upBlackWord() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required', 'name' => 'required', ], [ 'id.required' => 'id不能为空', 'name.required' => 'name不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->upBlackWord($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取ip信息-经纬度 * @return array */ public function getIpInfo() { $ip = $this->getClientIp(); $result = $this->publicServiceClient->getIpInfo(['ip' => $ip]); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取客户端IP地址. * @return string */ private function getClientIp(): string { if ($this->request->hasHeader('x-forwarded-for')) { $ip = trim(explode(',', $this->request->getHeaderLine('x-forwarded-for'))[0]); if ($ip) { return $ip; } } if ($this->request->hasHeader('x-real-ip')) { $ip = $this->request->getHeaderLine('x-real-ip'); if ($ip) { return $ip; } } return $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0'; } /** * 获取天气信息 * @return array */ public function getWeatherInfo() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'latitude' => 'required', 'longitude' => 'required', ], [ 'latitude.required' => '纬度不能为空', 'longitude.required' => '经度不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->getWeatherInfo($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 获取日历信息 * @return array */ public function getCalendar() { $year = $this->request->input('year', date('Y')); $month = $this->request->input('month', date('m')); $day = $this->request->input('day', date('d')); $hour = $this->request->input('day', date('H')); $data['year'] = $year; $data['month'] = $month; $data['day'] = $day; $data['hour'] = $hour; $result = $this->publicServiceClient->getCalendar($data); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 添加历史上的今天 * @return void */ public function addHistoryToday() { $result = PublicData::getHistoryToday(); if($result['code']!=200){ return Result::error($result['msg']); } $dataList = $result['data']??[]; if($dataList){ foreach ($dataList as $value){ preg_match('/^(-?\d+)年(\d+)月(\d+)日$/', $value['year'], $matches); if (isset($matches[1], $matches[2], $matches[3])) { $year = $matches[1]; $month = str_pad($matches[2], 2, '0', STR_PAD_LEFT); // 补零至两位 $day = str_pad($matches[3], 2, '0', STR_PAD_LEFT); // 补零至两位 $formattedDate = "{$year}-{$month}-{$day}"; // echo $formattedDate; // 输出:-1184-04-24 } else { return Result::error($result['msg']); } $value['year'] = $formattedDate; HistoryToday::updateOrInsert( ['title' => $value['title']], ['title' => $value['title']??'','year' => $value['year']] ); } } return Result::success($result['data']); } /** * 添加对联 * @return void */ public function addCouplet() { $requireData = $this->request->all(); // $validator = $this->validationFactory->make( // $requireData, // [ // 'type' => 'required', // ], // [ // 'type.required' => 'type不能为空', // ] // ); // if ($validator->fails()) { // $errorMessage = $validator->errors()->first(); // return Result::error($errorMessage); // } $result = PublicData::getCouplet($requireData['type']??""); if($result['code']!=200){ return Result::error($result['msg']); } $dataList = $result['result']['list']??[]; if($dataList){ foreach ($dataList as $value){ Couplet::updateOrInsert( ['first' => $value['shanglian']], ['center' => $value['hengpi']??'','first' => $value['shanglian'],'second'=>$value['xialian'],'type'=>$value['fenlei']??''] ); } } return Result::success($result['result']['list']); } /** * 添加对联 * @return void */ public function addRiddle() { for ($i = 0; $i < 5; $i++) { $result = PublicData::addRiddle(); if($result['code']!=1){ return Result::error("没资源了"); } var_dump($result); Riddle::updateOrInsert( ['riddle_title' => $result['mt']], ['riddle_title' => $result['mt']??'','riddle_bottom' => $result['md']??'','type' => $result['lx']??'','prompt' => $result['ts']??''] ); $i++; sleep(2); } return Result::success($result); } /** * 添加采集数据 * @return \Psr\Http\Message\ResponseInterface */ public function addArticle() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'title' => 'required', 'content' => 'required', 'web_site_id' => 'required', 'catid' => 'required', 'copyfrom' => 'required', 'fromurl' => 'required', 'author' => 'required', ], [ 'title.required' => '标题不能为空', 'content.required' => '内容不能为空', 'web_site_id.required' => '网站不能为空', 'catid.required' => '栏目不能为空', 'copyfrom.required' => '来源不能为空', 'fromurl.required' => '来源网址不能为空', 'author.required' => '作者不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); var_dump($errorMessage); return $this->response->json( [ 'id'=>uniqid(), 'target'=>"采集失败", 'desc'=>$errorMessage, 'error'=>$errorMessage ] ); } $arr_catid = explode(',',$requireData['catid']); $arr_web_site_id = explode(',',$requireData['web_site_id']); if(count($arr_catid) != count($arr_web_site_id)){ return $this->response->json( [ 'id'=>uniqid(), 'target'=>"采集失败", 'desc'=>"网站栏目不匹配", 'error'=>"网站栏目不匹配" ] ); } // var_dump($arr_catid,$arr_web_site_id); // die(); if($arr_catid){ foreach ($arr_catid as $key=>$val){ $categoryInfo = $this->newsServiceClient->getCategoryInfo(['id'=>$val]); if($categoryInfo['code']!=200){ return $this->response->json( [ 'id'=>uniqid(), 'error'=>"栏目不存在" ] ); } if($categoryInfo['data']['pid']!=0){ $pid_arr = json_decode($categoryInfo['data']['pid_arr'],true); $requireData['cat_arr_id'] = array_push($pid_arr,intval($val)); $requireData['cat_arr_id'] = isset($pid_arr) ? json_encode($pid_arr) : ''; }else{ $requireData['cat_arr_id'] = json_encode([intval($val)]); } $loginIp = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0'; $requireData['ip'] = $loginIp; $requireData['admin_user_id'] = 32; $requireData['level'] = isset($requireData['level']) && $requireData['level'] ? $requireData['level'] : 0; $requireData['hits'] = isset($requireData['hits']) && $requireData['hits'] ? $requireData['hits'] : 0; $requireData['is_original'] = isset($requireData['is_original']) && $requireData['is_original'] ? $requireData['is_original'] : 0; $requireData['status'] = isset($requireData['status']) && $requireData['status'] ? $requireData['status'] : 1; $requireData['imgurl'] = ''; $requireData['user_type'] = 10000; $requireData['level'] = "[0]"; $requireData['nav_add_pool_id'] = []; $requireData['city_id'] = 0; $requireData['city_arr_id'] = "[]"; $requireData['department_arr_id'] = "[]"; $requireData['department_id'] = 0; $requireData['islink'] = 0; $requireData['linkurl'] = ""; $requireData['keyword'] = ""; $requireData['introduce'] = ""; $requireData['is_survey'] = 0; $requireData['survey_name'] = ""; $requireData['suvey_array'] = ""; $requireData['survey_type'] = 0; $requireData['commend_id'] = "[]"; $requireData['catid'] = $val; $requireData['web_site_id'] = $arr_web_site_id[$key]; $result = $this->newsServiceClient->addArticle($requireData); $data = [ 'id'=>$result['data']['id'], 'target'=>$categoryInfo['data']['name'], 'desc'=>$requireData['title'], ]; } } return $this->response->json( $data ); } /** * 自助建站-1.选择页面回显相关数据 * @return array */ public function getWebPageType() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'website_id' =>'required', ], [ 'website_id.required' => '网站id 不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $result = $this->publicServiceClient->getWebPageType($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 自助建站-2.选择页面类型 * @return array */ public function addWebPageType() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'is_search' =>'required', 'website_id' =>'required', ], [ 'is_search.required' => '是否带搜索页面', 'website_id.required' => '网站id 不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->addWebPageType($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 自助建站-3.皮肤列表 * @return array */ public function getWebsiteTemplateList() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' => 'required|integer|min:1', 'page_size' => 'required|integer|min:1', 'website_id' =>'required', ], [ 'page.required' => 'page 不能为空', 'page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'page_size.required' => 'page_size 不能为空', 'page_size.integer' => 'page_size 必须是整数', 'page_size.min' => 'page_size 必须大于等于 1', 'website_id.required' => '网站id 不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } // return Result::success($requireData); $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getWebsiteTemplateList($requireData); return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']); } /** * 自助建站-4.添加网站 * @return array */ public function chooseWebsiteTemplate() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'website_id' =>'required', 'template_id' =>'required', ], [ 'website_id.required' => '网站id不能为空', 'template_id.required' => '皮肤id不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->chooseWebsiteTemplate($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 自助建站-5.保存到草稿箱 * @return array */ public function saveWebsiteTemplate() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'website_id' =>'required', 'template_data' =>'required', 'canvas_data' =>'required', ], [ 'website_id.required' => '网站名称不能为空', 'template_data.required' => '网站名称不能为空', 'canvas_data.required' => 'canvas_data不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->saveWebsiteTemplate($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 自助建站-6.返显保存的模版 * @return array */ public function getWebsiteTemplate() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'website_id' =>'required', ], [ 'website_id.required' => '网站id不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getWebsiteTemplate($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-通栏版式列表 * @return array */ public function getSectorPlaceList() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' => 'required|integer|min:1', 'page_size' => 'required|integer|min:1', 'type_id' => 'required|integer', ], [ 'page.required' => 'page 不能为空', 'page.integer' => 'page 必须是整数', 'page.min' => 'page 必须大于等于 1', 'page_size.required' => 'page_size 不能为空', 'page_size.integer' => 'page_size 必须是整数', 'page_size.min' => 'page_size 必须大于等于 1', 'type_id.required' => '版式类型不能为空', 'type_id.integer' => '版式类型必须为整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getSectorPlaceList($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-添加通栏版式 * @return array */ public function addSectorPlace() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'name' => 'required', 'size_id' => 'required|integer', 'sector_img' => 'required', 'type' => 'required|integer', 'type_id' => 'required|integer', ], [ 'name.required' => '版式名称不能为空', 'size_id.required' => '通栏尺寸不能为空', 'size_id.integer' => '通栏尺寸必须为整数', 'sector_img.required' => '通栏图片不能为空', 'type.required' => '版式编号不能为空', 'type.integer' => '版式编号必须为整数', 'type_id.required' => '版式类型id不能为空', 'type_id.integer' => '版式类型id必须为整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->addSectorPlace($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-编辑通栏版式 * @return array */ public function upSectorPlace() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' => 'required|integer', 'name' => 'required', 'size_id' => 'required|integer', 'sector_img' => 'required', 'type' => 'required|integer', 'type_id' => 'required|integer', ], [ 'id.required' => '通栏版式id不能为空', 'id.integer' => '通栏版式id必须为整数', 'name.required' => '版式名称不能为空', 'size_id.required' => '通栏尺寸不能为空', 'size_id.integer' => '通栏尺寸必须为整数', 'sector_img.required' => '通栏图片不能为空', 'type.required' => '通栏类型不能为空', 'type.integer' => '通栏类型必须为整数', 'type_id.required' => '通栏类型id不能为空', 'type_id.integer' => '通栏类型id必须为整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->upSectorPlace($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-删除通栏版式 * @return array */ public function delSectorPlace() { $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); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->delSectorPlace($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-获取通栏详情 * @return array */ public function getSectorPlaceInfo() { $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); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getSectorPlaceInfo($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 获取企业列表 * @return array */ public function getCompanyList() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'page' =>'required', 'pageSize' =>'required', 'website_id' =>'nullable|integer', 'status' =>'nullable|integer', 'title' =>'nullable|string', 'ischeck' =>'required|integer', ], [ 'page.required' => '第几页不能为空', 'pageSize.required' => '每页数量不能为空', 'website_id.integer' => '网站id必须是整数', 'status.integer' => '状态必须是整数', 'title.string' => '标题必须是字符串', 'ischeck.integer' => '是否审核必须是整数', 'ischeck.required' => '是否审核不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->newsServiceClient->getCompanyList($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 添加企业 * @return array */ public function addCompany() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'website_id' =>'required', 'title' =>'required', ], [ 'website_id.required' => '网站名称不能为空', 'title.required' => '标题不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->newsServiceClient->addCompany($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 修改企业 * @return array */ public function upCompany() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' =>'required', 'website_id' =>'required', 'cat_arr_id' =>'required', 'title' =>'required', ], [ 'id.required' => 'id不能为空', 'website_id.required' => '网站名称不能为空', 'cat_arr_id.required' => '栏目不能为空', 'title.required' => '标题不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->newsServiceClient->upCompany($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 删除企业 * @return array */ public function delCompany() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' =>'required', ], [ 'id.required' => '网站名称不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->newsServiceClient->delCompany($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 审核企业 * @return array */ public function checkCompany() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'id' =>'required', 'status' =>'required', ], [ 'id.required' => '网站名称不能为空', 'status.required' => '网站名称不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->newsServiceClient->checkCompany($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 企业详情 * @return array */ public function getCompanyInfo() { $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); } $requireData['user_id'] = Context::get("UserId"); $result = $this->newsServiceClient->getCompanyInfo($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-通栏版式位置 * @return array */ public function getSectorPlaceSort() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'sector_type' => 'required', ], [ 'sector_type.required' => '通栏版式id不能为空', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getSectorPlaceSort($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-获取所有的通栏版式 * @return array */ public function getAllSectorPlace() { $requireData = $this->request->all(); $validator = $this->validationFactory->make( $requireData, [ 'type_id' => 'required|integer', ], [ 'type_id.required' => '版式类型不能为空', 'type_id.integer' => '版式类型必须为整数', ] ); if ($validator->fails()) { $errorMessage = $validator->errors()->first(); return Result::error($errorMessage); } $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getAllSectorPlace($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 通栏版式管理-获取组件类型 * @return array */ public function getComponentType() { $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getComponentType($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 组件管理-获取所有通栏 * @return array */ public function getAllSector() { $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getAllSector($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } /** * 自助建站-流程管理-获取所有组件 * @return array */ public function getAllComponent() { $requireData = $this->request->all(); $requireData['user_id'] = Context::get("UserId"); $result = $this->publicServiceClient->getAllComponent($requireData); return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']); } }