|
|
|
@ -4,24 +4,46 @@ namespace task\tasks; |
|
|
|
include 'Base.php'; |
|
|
|
class LibLease extends Base |
|
|
|
{ |
|
|
|
|
|
|
|
# 获取token url |
|
|
|
protected $accessTokenUrl = 'https://ulas1.szlib.org.cn/auth/oauth/token?grant_type=password&scope=app'; |
|
|
|
# 获取数据 url |
|
|
|
protected $dataUrl = 'https://api.szlib.org.cn/monitor/getLibraryServiceData?access_token='; |
|
|
|
# client_id |
|
|
|
protected $client_id = 'baapi'; |
|
|
|
# client_secret |
|
|
|
protected $client_secret = 'Ba2020api'; |
|
|
|
protected $username = 'balib'; |
|
|
|
protected $password = 'Ba2015lib'; |
|
|
|
protected $accessTokenFilename = 'lib_lease_access_token.txt'; |
|
|
|
|
|
|
|
|
|
|
|
public function run() |
|
|
|
{ |
|
|
|
|
|
|
|
$fileData = @file_get_contents($this->accessTokenFilename); |
|
|
|
$assess_token = $fileData ?: $this->getAccessToken(); |
|
|
|
|
|
|
|
$config = $this->config('api_config'); |
|
|
|
$url = 'http://10.99.57.79:9999/SSBusiness/monitor/getLibraryService?library=044007'; |
|
|
|
$result = $this->get_data($url,'balib','Ba2015lib'); |
|
|
|
$url = $this->dataUrl . $assess_token; |
|
|
|
$result = $this->sendGetCurl($url); |
|
|
|
$result_data = json_decode($result,true); |
|
|
|
|
|
|
|
if ($result_data['success'] != 1) return '失败'; |
|
|
|
$content = $result_data['content']; |
|
|
|
if (!$content) return '数据不存在'; |
|
|
|
# token过期重新获取 |
|
|
|
if (isset($result_data['error']) && $result_data['error'] == 'invalid_token') { |
|
|
|
$assess_token = $this->getAccessToken(); |
|
|
|
$url = $this->dataUrl . $assess_token; |
|
|
|
$result = $this->sendGetCurl($url); |
|
|
|
$result_data = json_decode($result,true); |
|
|
|
} |
|
|
|
|
|
|
|
if ($result_data['result'] != 'success') return '失败'; |
|
|
|
|
|
|
|
$requestData = [ |
|
|
|
[ |
|
|
|
'library' => $result_data['library'], |
|
|
|
'newreader' => $content['newreader'], |
|
|
|
'servcount' => $content['servcount'], |
|
|
|
'returncount' => $content['returncount'] |
|
|
|
'newreader' => $result_data['newreader'], |
|
|
|
'servcount' => $result_data['servcount'], |
|
|
|
'returncount' => $result_data['returncount'] |
|
|
|
] |
|
|
|
]; |
|
|
|
$requestRes = $this->request_create_data($requestData,'/api/library.pass/createLibraryLease',$config['host_path'],true); |
|
|
|
@ -31,6 +53,61 @@ class LibLease extends Base |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取登陆token |
|
|
|
*/ |
|
|
|
protected function getAccessToken() |
|
|
|
{ |
|
|
|
|
|
|
|
$url = $this->accessTokenUrl; |
|
|
|
$url .= "&client_id=".$this->client_id; |
|
|
|
$url .= "&client_secret=".$this->client_secret; |
|
|
|
$url .= "&username=".$this->username; |
|
|
|
$url .= "&password=".md5($this->password); |
|
|
|
|
|
|
|
$result = $this->curl_post($url); |
|
|
|
$deResult = json_decode($result,true); |
|
|
|
if (isset($deResult['error'])) { |
|
|
|
exit($deResult['error_description']); |
|
|
|
} |
|
|
|
$access_token = $deResult['access_token']; |
|
|
|
|
|
|
|
file_put_contents($this->accessTokenFilename,$access_token); |
|
|
|
|
|
|
|
return $access_token; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 发送get请求 |
|
|
|
* @param $url |
|
|
|
* @return bool|string|void |
|
|
|
*/ |
|
|
|
protected function sendGetCurl($url) |
|
|
|
{ |
|
|
|
$curl = curl_init(); |
|
|
|
curl_setopt_array($curl, [ |
|
|
|
CURLOPT_URL => $url, |
|
|
|
CURLOPT_RETURNTRANSFER => true, |
|
|
|
CURLOPT_ENCODING => "", |
|
|
|
CURLOPT_MAXREDIRS => 10, |
|
|
|
CURLOPT_TIMEOUT => 30, |
|
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, |
|
|
|
CURLOPT_CUSTOMREQUEST => "GET", |
|
|
|
]); |
|
|
|
|
|
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); |
|
|
|
|
|
|
|
$response = curl_exec($curl); |
|
|
|
$err = curl_error($curl); |
|
|
|
|
|
|
|
curl_close($curl); |
|
|
|
|
|
|
|
if ($err) { |
|
|
|
exit("cURL Error #:" . $err); |
|
|
|
} |
|
|
|
|
|
|
|
return $response; |
|
|
|
} |
|
|
|
} |
|
|
|
$lib = new LibLease(); |
|
|
|
echo $lib->run(); |
|
|
|
|