Files
pgserver3.0/pgserver/application/admin/service/Consultfiles.php
annnj-company 130c1026c4 first commit
2026-04-17 18:29:53 +08:00

94 lines
3.5 KiB
PHP

<?php
namespace app\admin\service;
class Consultfiles {
/**
* 查档
*/
public function Consultfiles($data) {
$url = config('serviceConfig.API_CONSULT_PRO_URL');
$result = json_decode($this->post($url, json_encode($data), 60, ['Content-type: application/json']), true);
if (!isset($result['code']) || !in_array($result['code'], array(-1, 1, 2)))
return '查询结果返回有误';
$res = array();
if ($result['code'] == -1) {
$res = ['code' => -1, 'msg' => $result['msg'], 'estate_inquiry_text' => $result['msg'], 'result_code' => $result['code'], 'result' => $result];
} else if ($result['code'] == 1) {
$status_txt = array_column( $result['data'], 'status_txt');
$res = ['code' => $result['code'], 'estatestatus' => !empty($status_txt) ? $status_txt[0] : '', 'result_code' => $result['code'], 'result' => $result];
} else if ($result['code'] == 2) {
$printResult = array_column($result['data'], 'printResult');
$res = ['code' => -1, 'msg' => $printResult, 'estate_inquiry_text' => $printResult, 'result_code' => $result['code'], 'result' => $result];
}
return $res;
}
/**
* POST 请求(支持文件上传)
* @param string $url HTTP请求URL地址
* @param array|string $data POST提交的数据
* @param int $second 请求超时时间
* @param array $header 请求Header信息
* @return bool|string
*/
static public function post($url, $data = [], $second = 30, $header = []) {
$curl = curl_init();
self::applyData($data);
self::applyHttp($curl, $url);
curl_setopt($curl, CURLOPT_TIMEOUT, $second);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
if (!empty($header)) {
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
list($content, $status) = [curl_exec($curl), curl_getinfo($curl), curl_close($curl)];
return (intval($status["http_code"]) === 200) ? $content : false;
}
/**
* Post 数据过滤处理
* @param array $data
* @param bool $isBuild
* @return string
*/
private static function applyData(&$data, $isBuild = true) {
if (!is_array($data)) {
return null;
}
foreach ($data as &$value) {
is_array($value) && $isBuild = true;
if (!(is_string($value) && strlen($value) > 0 && $value[0] === '@')) {
continue;
}
if (!file_exists(($file = realpath(trim($value, '@'))))) {
continue;
}
list($isBuild, $mime) = [false, FileService::getFileMine(pathinfo($file, 4))];
if (class_exists('CURLFile', false)) {
$value = new CURLFile($file, $mime);
} else {
$value = "{$value};type={$mime}";
}
}
$isBuild && $data = http_build_query($data);
}
/**
* 设置SSL参数
* @param $curl
* @param string $url
*/
private static function applyHttp(&$curl, $url) {
if (stripos($url, "https") === 0) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
}
}
}