作者 赵彬吉

update

... ... @@ -2,12 +2,15 @@
namespace App\Console\Commands\RankData;
use App\Helper\QuanqiusouApi;
use App\Http\Logic\Bside\RankData\RankDataLogic;
use App\Models\Domain\DomainInfo;
use App\Models\Project\DeployOptimize;
use App\Models\Project\Project;
use App\Models\RankData\RankData as GoogleRankModel;
use App\Utils\LogUtils;
use Illuminate\Database\Eloquent\Model;
/**
* Class GoogleRank
... ... @@ -38,6 +41,9 @@ class RankData extends BaseCommands
*/
public function do()
{
//同步api_no
$this->SyncApiNo();
//所有项目 今日是否达标 重置
Project::where('is_remain_today', 1)->update(['is_remain_today' => 0]);
... ... @@ -62,4 +68,35 @@ class RankData extends BaseCommands
}
return !$error;
}
/**
* 同步项目api_no
* @author zbj
* @date 2023/10/16
*/
public function SyncApiNo(){
$deploy_optimizes = DeployOptimize::leftJoin('gl_project', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
->whereIn('gl_project.type', [Project::TYPE_TWO,Project::TYPE_THREE])->where('gl_project_deploy_optimize.api_no', 0)
->where('gl_project_deploy_optimize.domain', '>', 0)
->get();
if(!$deploy_optimizes){
return true;
}
$api = new QuanqiusouApi();
$ai_nos = $api->getWebApiNo();
foreach ($deploy_optimizes as $deploy_optimize){
$domain = DomainInfo::where('id', $deploy_optimize['domain'])->value('domain');
if(!$domain){
continue;
}
$api_no = array_search($domain, $ai_nos);
if($api_no){
$deploy_optimize->api_no = $api_no;
$deploy_optimize->save();
}
}
}
}
... ...
... ... @@ -205,7 +205,7 @@ class SyncProject extends Command
'login_mobile'=>$param['principal_mobile']
],
'deploy_optimize' => [
'api_no' => $param['id']
'api_no' => 0
],
'project_after' => [],
'payment' => [
... ...
... ... @@ -231,5 +231,33 @@ class QuanqiusouApi
return $res;
}
/**
* 项目api_no对应关系
* @return array|false|int|mixed|null
* @author zbj
* @date 2023/10/16
*/
public function getWebApiNo(){
$key = "quanqiusou_web_api_no_" . date('Y-m-d');
$res = Cache::get($key);
if (!$res) {
$api_url = $this->url . '/api/index/weblist';
$param = [
'key' => '289c1fc81c89d79c04ed4fd72822948e',
];
try {
$res = HttpUtils::get($api_url, $param);
if($res){
$res = Arr::s2a($res);
Cache::put($key, $res, 24 * 3600);
}
} catch (\Exception | GuzzleException $e) {
errorLog('获取项目API_NO数据失败', [], $e);
return false;
}
}
return $res;
}
}
... ...
... ... @@ -156,6 +156,8 @@ class ProjectController extends BaseController
if ($this->map['search_type'] == 'domain') {
$ids = DomainInfo::where('domain', 'like', '%'.$this->map['search'].'%')->pluck('id')->toArray();
$subQuery->whereIn('gl_project_deploy_optimize.domain', $ids);
} else if($this->map['search_type'] == 'test_domain'){
$subQuery->where('gl_project_deploy_build.test_domain','like','%'.$this->map['search'].'%');
} else {
// 搜索名称
$subQuery->orwhere('gl_project.company','like','%'.$this->map['search'].'%')
... ...
... ... @@ -156,7 +156,7 @@ class RankDataLogic extends BaseLogic
$ai_projects = $this->getAiProjects()['data'] ?? [];
$flg_ai = $this->getAiFlag($ai_projects, $domain);
$ai_domain = str_replace('www.', '', $this->getAiProjects($domain)['domain'] ?? '');
$list = RankData::where('project_id', $project_id)->where('lang', $lang)->value('data');
$list = RankData::where('project_id', $project_id)->where('lang', $lang)->value('data') ?: [];
$list30 = []; //排名前三十的
$list30_0 = []; //排名前三十且近三天没有排名的
$list100 = []; //排名前100的
... ...