作者 赵彬吉

update

... ... @@ -37,7 +37,7 @@ class SemrushApi
$res = HttpUtils::get($url, $params);
return $this->data($res)[0];
}catch (\Exception|GuzzleException $e){
errorLog('获取站点外链数据', $params, $e);
errorLog('获取站点外链数据失败', $params, $e);
return false;
}
}
... ... @@ -63,7 +63,7 @@ class SemrushApi
$res = HttpUtils::get($url, $params);
return $this->data($res);
}catch (\Exception|GuzzleException $e){
errorLog('获取站点外链数据', $params, $e);
errorLog('获取站点外链数据失败', $params, $e);
return false;
}
}
... ...
... ... @@ -358,40 +358,42 @@ class RankDataLogic extends BaseLogic
* @date 2023/9/20
*/
public function syncRankData($api_no, $site_res){
$project_id = DeployOptimize::where('api_no', $api_no)->value('project_id');
$project = Project::find($project_id);
if(!$project){
throw new \Exception($api_no . '关联的项目不存在');
}
$project_ids = DeployOptimize::where('api_no', $api_no)->pluck('project_id');
foreach ($project_ids as $project_id) {
$project = Project::find($project_id);
if (!$project) {
throw new \Exception($api_no . '关联的项目不存在');
}
$api = new QuanqiusouApi();
$api = new QuanqiusouApi();
$model = RankData::where('project_id', $project_id)->where('lang', '')->first();
if (!$model || $model->updated_date != date('Y-m-d')) {
$res = $api->getGoogleRank($api_no);
if(!$res){
throw new \Exception('接口数据获取失败');
}
//收录数
$indexed_pages_num = $site_res[$api_no] ?? 0;
$this->save_rank($project_id, $res, $indexed_pages_num);
}
//有小语种的
$lang_list = $api->getLangList();
if(!empty($lang_list[$api_no])){
$model = RankData::where('project_id', $project_id)->where('lang', '<>', '')->first();
$model = RankData::where('project_id', $project_id)->where('lang', '')->first();
if (!$model || $model->updated_date != date('Y-m-d')) {
$res = $api->getGoogleRank($api_no, 1);
if(!$res){
$res = $api->getGoogleRank($api_no);
if (!$res) {
throw new \Exception('接口数据获取失败');
}
$data = [];
//不同的小语种取出来
foreach ($res as $keyword => $v){
$data[Arr::last($v)['lang']][$keyword] = $v;
}
foreach ($data as $lang => $rank){
$this->save_rank($project_id, $rank, 0, $lang);
//收录数
$indexed_pages_num = $site_res[$api_no] ?? 0;
$this->save_rank($project_id, $res, $indexed_pages_num);
}
//有小语种的
$lang_list = $api->getLangList();
if (!empty($lang_list[$api_no])) {
$model = RankData::where('project_id', $project_id)->where('lang', '<>', '')->first();
if (!$model || $model->updated_date != date('Y-m-d')) {
$res = $api->getGoogleRank($api_no, 1);
if (!$res) {
throw new \Exception('接口数据获取失败');
}
$data = [];
//不同的小语种取出来
foreach ($res as $keyword => $v) {
$data[Arr::last($v)['lang']][$keyword] = $v;
}
foreach ($data as $lang => $rank) {
$this->save_rank($project_id, $rank, 0, $lang);
}
}
}
}
... ...