去除手机号验证
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
<?php
|
||||
|
||||
namespace Extend\Prescription;
|
||||
|
||||
use App\Constants\HttpEnumCode;
|
||||
use App\Exception\BusinessException;
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Exception\GuzzleException;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\Redis\Redis;
|
||||
use Hyperf\Utils\ApplicationContext;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
|
||||
class Prescription
|
||||
{
|
||||
#[Inject]
|
||||
protected ContainerInterface $container;
|
||||
|
||||
#[Inject]
|
||||
protected Client $client;
|
||||
|
||||
#[Inject]
|
||||
protected Redis $redis;
|
||||
|
||||
protected string $api_url;
|
||||
protected string $client_id;
|
||||
protected string $client_secret;
|
||||
protected array $header;
|
||||
public string $version = "v1";
|
||||
|
||||
public function __construct(){
|
||||
// 请求地址
|
||||
$this->api_url = "http://49.233.3.200:6304/api/thridapi/";
|
||||
$this->client_id = "ZD-004";
|
||||
$this->client_secret = "0baa5927164710b9f800bf33546b6da3";
|
||||
$this->container = ApplicationContext::getContainer();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取token接口
|
||||
* @return string token数据
|
||||
*/
|
||||
protected function getToken(): string
|
||||
{
|
||||
$option = [
|
||||
"json" => array(
|
||||
"clientId" => $this->client_id,
|
||||
"clientSecret" => $this->client_secret,
|
||||
)
|
||||
];
|
||||
|
||||
try {
|
||||
$response = $this->httpRequest($this->api_url . $this->version . '/user_thrid/token', $option);
|
||||
|
||||
if (empty($response['result'])){
|
||||
// 返回值为空
|
||||
throw new BusinessException(HttpEnumCode::getMessage(HttpEnumCode::SERVER_ERROR));
|
||||
}
|
||||
|
||||
if (empty($response['result']['token'])){
|
||||
// 返回值为空
|
||||
throw new BusinessException(HttpEnumCode::getMessage(HttpEnumCode::SERVER_ERROR));
|
||||
}
|
||||
|
||||
} catch (GuzzleException $e) {
|
||||
throw new BusinessException($e->getMessage());
|
||||
}
|
||||
|
||||
$this->header = [
|
||||
"Authorization" => "Bearer " . $response['result']['token']
|
||||
];
|
||||
|
||||
$this->redis->set("prescription_token",$response['result']['token'],60 * 60 * 1.5);
|
||||
return $response['result']['token'];
|
||||
}
|
||||
|
||||
// 获取药品
|
||||
public function getProd(){
|
||||
$option = [
|
||||
"json" => array(
|
||||
"page" => 1,
|
||||
"pageSize" => 1,
|
||||
),
|
||||
];
|
||||
|
||||
try {
|
||||
$response = $this->httpRequest($this->api_url . $this->version . '/drug/syncDrugCatalogue', $option);
|
||||
if (empty($response['result'])){
|
||||
// 返回值为空
|
||||
throw new BusinessException(HttpEnumCode::getMessage(HttpEnumCode::SERVER_ERROR));
|
||||
}
|
||||
|
||||
if (empty($response['result']['rows'])){
|
||||
return true;
|
||||
}
|
||||
dump($response);
|
||||
// 获取总数
|
||||
// $count
|
||||
} catch (GuzzleException $e) {
|
||||
throw new BusinessException($e->getMessage());
|
||||
}
|
||||
|
||||
// return $response['token'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 请求封装
|
||||
* @param string $path
|
||||
* @param array $option
|
||||
* @return array
|
||||
* @throws GuzzleException
|
||||
*/
|
||||
protected function httpRequest(string $path,array $arg = []): array
|
||||
{
|
||||
if ($path != "http://49.233.3.200:6304/api/thridapi/v1/drug/syncDrugCatalogue"){
|
||||
$this->redis = $this->container->get(Redis::class);
|
||||
|
||||
$access_token = $this->redis->get("prescription_token");
|
||||
if (empty($access_token)){
|
||||
$access_token = $this->getToken();
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($access_token)){
|
||||
$option = [
|
||||
"headers" => [
|
||||
"Authorization" => "Bearer " . $access_token
|
||||
]
|
||||
];
|
||||
}
|
||||
if (!empty($option)){
|
||||
$arg = array_merge($arg,$option);
|
||||
}
|
||||
|
||||
|
||||
dump($arg);
|
||||
|
||||
$response = $this->client->post($path, $arg);
|
||||
|
||||
if ($response->getStatusCode() != '200'){
|
||||
// 请求失败
|
||||
throw new BusinessException($response->getBody()->getContents());
|
||||
}
|
||||
|
||||
$body = json_decode($response->getBody(),true);
|
||||
if (empty($body)){
|
||||
// 返回值为空
|
||||
throw new BusinessException(HttpEnumCode::getMessage(HttpEnumCode::SERVER_ERROR));
|
||||
}
|
||||
dump($body);
|
||||
|
||||
if (empty($body['data'])){
|
||||
// 返回值为空
|
||||
if (!empty($body['message'])){
|
||||
throw new BusinessException($body['message']);
|
||||
}
|
||||
throw new BusinessException(HttpEnumCode::getMessage(HttpEnumCode::SERVER_ERROR));
|
||||
}
|
||||
|
||||
return $body['data'];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user