正在显示
5 个修改的文件
包含
69 行增加
和
2 行删除
| @@ -2,12 +2,15 @@ | @@ -2,12 +2,15 @@ | ||
| 2 | 2 | ||
| 3 | namespace App\Console\Commands\RankData; | 3 | namespace App\Console\Commands\RankData; |
| 4 | 4 | ||
| 5 | + | ||
| 5 | use App\Helper\QuanqiusouApi; | 6 | use App\Helper\QuanqiusouApi; |
| 6 | use App\Http\Logic\Bside\RankData\RankDataLogic; | 7 | use App\Http\Logic\Bside\RankData\RankDataLogic; |
| 8 | +use App\Models\Domain\DomainInfo; | ||
| 7 | use App\Models\Project\DeployOptimize; | 9 | use App\Models\Project\DeployOptimize; |
| 8 | use App\Models\Project\Project; | 10 | use App\Models\Project\Project; |
| 9 | use App\Models\RankData\RankData as GoogleRankModel; | 11 | use App\Models\RankData\RankData as GoogleRankModel; |
| 10 | use App\Utils\LogUtils; | 12 | use App\Utils\LogUtils; |
| 13 | +use Illuminate\Database\Eloquent\Model; | ||
| 11 | 14 | ||
| 12 | /** | 15 | /** |
| 13 | * Class GoogleRank | 16 | * Class GoogleRank |
| @@ -38,6 +41,9 @@ class RankData extends BaseCommands | @@ -38,6 +41,9 @@ class RankData extends BaseCommands | ||
| 38 | */ | 41 | */ |
| 39 | public function do() | 42 | public function do() |
| 40 | { | 43 | { |
| 44 | + //同步api_no | ||
| 45 | + $this->SyncApiNo(); | ||
| 46 | + | ||
| 41 | //所有项目 今日是否达标 重置 | 47 | //所有项目 今日是否达标 重置 |
| 42 | Project::where('is_remain_today', 1)->update(['is_remain_today' => 0]); | 48 | Project::where('is_remain_today', 1)->update(['is_remain_today' => 0]); |
| 43 | 49 | ||
| @@ -62,4 +68,35 @@ class RankData extends BaseCommands | @@ -62,4 +68,35 @@ class RankData extends BaseCommands | ||
| 62 | } | 68 | } |
| 63 | return !$error; | 69 | return !$error; |
| 64 | } | 70 | } |
| 71 | + | ||
| 72 | + /** | ||
| 73 | + * 同步项目api_no | ||
| 74 | + * @author zbj | ||
| 75 | + * @date 2023/10/16 | ||
| 76 | + */ | ||
| 77 | + public function SyncApiNo(){ | ||
| 78 | + $deploy_optimizes = DeployOptimize::leftJoin('gl_project', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') | ||
| 79 | + ->whereIn('gl_project.type', [Project::TYPE_TWO,Project::TYPE_THREE])->where('gl_project_deploy_optimize.api_no', 0) | ||
| 80 | + ->where('gl_project_deploy_optimize.domain', '>', 0) | ||
| 81 | + ->get(); | ||
| 82 | + if(!$deploy_optimizes){ | ||
| 83 | + return true; | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + $api = new QuanqiusouApi(); | ||
| 87 | + $ai_nos = $api->getWebApiNo(); | ||
| 88 | + | ||
| 89 | + foreach ($deploy_optimizes as $deploy_optimize){ | ||
| 90 | + $domain = DomainInfo::where('id', $deploy_optimize['domain'])->value('domain'); | ||
| 91 | + if(!$domain){ | ||
| 92 | + continue; | ||
| 93 | + } | ||
| 94 | + $api_no = array_search($domain, $ai_nos); | ||
| 95 | + if($api_no){ | ||
| 96 | + $deploy_optimize->api_no = $api_no; | ||
| 97 | + $deploy_optimize->save(); | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + } | ||
| 101 | + | ||
| 65 | } | 102 | } |
| @@ -205,7 +205,7 @@ class SyncProject extends Command | @@ -205,7 +205,7 @@ class SyncProject extends Command | ||
| 205 | 'login_mobile'=>$param['principal_mobile'] | 205 | 'login_mobile'=>$param['principal_mobile'] |
| 206 | ], | 206 | ], |
| 207 | 'deploy_optimize' => [ | 207 | 'deploy_optimize' => [ |
| 208 | - 'api_no' => $param['id'] | 208 | + 'api_no' => 0 |
| 209 | ], | 209 | ], |
| 210 | 'project_after' => [], | 210 | 'project_after' => [], |
| 211 | 'payment' => [ | 211 | 'payment' => [ |
| @@ -231,5 +231,33 @@ class QuanqiusouApi | @@ -231,5 +231,33 @@ class QuanqiusouApi | ||
| 231 | return $res; | 231 | return $res; |
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | + /** | ||
| 235 | + * 项目api_no对应关系 | ||
| 236 | + * @return array|false|int|mixed|null | ||
| 237 | + * @author zbj | ||
| 238 | + * @date 2023/10/16 | ||
| 239 | + */ | ||
| 240 | + public function getWebApiNo(){ | ||
| 241 | + $key = "quanqiusou_web_api_no_" . date('Y-m-d'); | ||
| 242 | + $res = Cache::get($key); | ||
| 243 | + if (!$res) { | ||
| 244 | + $api_url = $this->url . '/api/index/weblist'; | ||
| 245 | + $param = [ | ||
| 246 | + 'key' => '289c1fc81c89d79c04ed4fd72822948e', | ||
| 247 | + ]; | ||
| 248 | + try { | ||
| 249 | + $res = HttpUtils::get($api_url, $param); | ||
| 250 | + if($res){ | ||
| 251 | + $res = Arr::s2a($res); | ||
| 252 | + Cache::put($key, $res, 24 * 3600); | ||
| 253 | + } | ||
| 254 | + } catch (\Exception | GuzzleException $e) { | ||
| 255 | + errorLog('获取项目API_NO数据失败', [], $e); | ||
| 256 | + return false; | ||
| 257 | + } | ||
| 258 | + } | ||
| 259 | + return $res; | ||
| 260 | + } | ||
| 261 | + | ||
| 234 | 262 | ||
| 235 | } | 263 | } |
| @@ -156,6 +156,8 @@ class ProjectController extends BaseController | @@ -156,6 +156,8 @@ class ProjectController extends BaseController | ||
| 156 | if ($this->map['search_type'] == 'domain') { | 156 | if ($this->map['search_type'] == 'domain') { |
| 157 | $ids = DomainInfo::where('domain', 'like', '%'.$this->map['search'].'%')->pluck('id')->toArray(); | 157 | $ids = DomainInfo::where('domain', 'like', '%'.$this->map['search'].'%')->pluck('id')->toArray(); |
| 158 | $subQuery->whereIn('gl_project_deploy_optimize.domain', $ids); | 158 | $subQuery->whereIn('gl_project_deploy_optimize.domain', $ids); |
| 159 | + } else if($this->map['search_type'] == 'test_domain'){ | ||
| 160 | + $subQuery->where('gl_project_deploy_build.test_domain','like','%'.$this->map['search'].'%'); | ||
| 159 | } else { | 161 | } else { |
| 160 | // 搜索名称 | 162 | // 搜索名称 |
| 161 | $subQuery->orwhere('gl_project.company','like','%'.$this->map['search'].'%') | 163 | $subQuery->orwhere('gl_project.company','like','%'.$this->map['search'].'%') |
| @@ -156,7 +156,7 @@ class RankDataLogic extends BaseLogic | @@ -156,7 +156,7 @@ class RankDataLogic extends BaseLogic | ||
| 156 | $ai_projects = $this->getAiProjects()['data'] ?? []; | 156 | $ai_projects = $this->getAiProjects()['data'] ?? []; |
| 157 | $flg_ai = $this->getAiFlag($ai_projects, $domain); | 157 | $flg_ai = $this->getAiFlag($ai_projects, $domain); |
| 158 | $ai_domain = str_replace('www.', '', $this->getAiProjects($domain)['domain'] ?? ''); | 158 | $ai_domain = str_replace('www.', '', $this->getAiProjects($domain)['domain'] ?? ''); |
| 159 | - $list = RankData::where('project_id', $project_id)->where('lang', $lang)->value('data'); | 159 | + $list = RankData::where('project_id', $project_id)->where('lang', $lang)->value('data') ?: []; |
| 160 | $list30 = []; //排名前三十的 | 160 | $list30 = []; //排名前三十的 |
| 161 | $list30_0 = []; //排名前三十且近三天没有排名的 | 161 | $list30_0 = []; //排名前三十且近三天没有排名的 |
| 162 | $list100 = []; //排名前100的 | 162 | $list100 = []; //排名前100的 |
-
请 注册 或 登录 后发表评论