Commit f828e4f9 authored by hj's avatar hj

更新提交

parent 533d1c59
...@@ -49,13 +49,37 @@ class CheMenuApiService extends PlatformAbstractService ...@@ -49,13 +49,37 @@ class CheMenuApiService extends PlatformAbstractService
sleep(60); sleep(60);
$this->saveCategory($categoryName, $parentCategoryName, $webPath); $this->saveCategory($categoryName, $parentCategoryName, $webPath);
} }
}else{
dd(123);
} }
$this->requestError($exception); $this->requestError($exception);
} }
} }
public function saveProduct($productContent)
{
try{
$response = $this->getPostClient($this->yybaoApiUrl.'/webpage/chemenu/saveProduct',
[
'productName' => $productContent['productName'],
'iupac' => $productContent['IUPAC'],
'image' => $productContent['image'],
'casInfo' => json_encode($productContent['casInfo']),
'productList' => json_encode($productContent['productList'])
], []);
return $this->returnResponse($response);
}catch(\Throwable $exception){
dd($exception->getMessage());
if(preg_match('/\{(?<response>[\s\S]*?)\}/i', $exception->getMessage(), $response)){
$response = json_decode('{'.$response['response'].'}', true);
if($response && $response['status'] == 429){
sleep(60);
$this->saveProduct($productContent);
}
}
$this->requestError($exception);
}
}
public function returnResponse($apiResponse): bool public function returnResponse($apiResponse): bool
{ {
$response = json_decode($apiResponse, true); $response = json_decode($apiResponse, true);
......
...@@ -4,6 +4,7 @@ namespace App\Services\ThirdPlatform; ...@@ -4,6 +4,7 @@ namespace App\Services\ThirdPlatform;
use App\Repositories\Contracts\ThirdApiPlatformRepository; use App\Repositories\Contracts\ThirdApiPlatformRepository;
use App\Services\ThirdPlatform\Api\CheMenuApiService; use App\Services\ThirdPlatform\Api\CheMenuApiService;
use App\Support\Facades\SimpleLogs;
use App\Support\Traits\Helpers; use App\Support\Traits\Helpers;
class CheMenuService class CheMenuService
...@@ -80,13 +81,14 @@ class CheMenuService ...@@ -80,13 +81,14 @@ class CheMenuService
} }
} }
}catch(\Throwable $exception){ }catch(\Throwable $exception){
throw $exception; SimpleLogs::writeLog($exception->getMessage(), 'chemenu error', 'error');
} }
} }
public function productPage($url) public function productPage($url)
{ {
try{
$pageUrl = $url['url']; $pageUrl = $url['url'];
$responseHtml = $this->apiService->getPage($pageUrl); $responseHtml = $this->apiService->getPage($pageUrl);
//file_put_contents('./test3.html', $responseHtml); //file_put_contents('./test3.html', $responseHtml);
...@@ -130,11 +132,11 @@ class CheMenuService ...@@ -130,11 +132,11 @@ class CheMenuService
}catch(\Throwable $exception){ }catch(\Throwable $exception){
list($name, $content) = explode(':', $info); list($name, $content) = explode(':', $info);
} }
$productPageContent['casInfo'][] = [$name =>$content]; $productPageContent['casInfo'][$name] = $content;
} }
} }
} }
$productPageContent['casInfo'] = array_unique($productPageContent['casInfo'],SORT_REGULAR); //$productPageContent['casInfo'] = array_unique($productPageContent['casInfo'],SORT_REGULAR);
$productListDivRegx = '/<div[\s]*?class=[\\\'|\"]col-md-12 col-lg-12 col-sm-12 product-details-size[\\\'|\"]>[\s\S]*?<tbody>(?<productList>[\s\S]*?)<\/tbody>/i'; $productListDivRegx = '/<div[\s]*?class=[\\\'|\"]col-md-12 col-lg-12 col-sm-12 product-details-size[\\\'|\"]>[\s\S]*?<tbody>(?<productList>[\s\S]*?)<\/tbody>/i';
if(preg_match_all($productListDivRegx, $responseHtml, $productList)){ if(preg_match_all($productListDivRegx, $responseHtml, $productList)){
...@@ -154,9 +156,11 @@ class CheMenuService ...@@ -154,9 +156,11 @@ class CheMenuService
} }
} }
} }
$this->apiService->saveProduct($productPageContent);
dd($productPageContent);
} }
} }
}catch(\Throwable $exception){
SimpleLogs::writeLog($exception->getMessage(), 'chemenu error', 'error');
}
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment