作者 李宇航

合并分支 'lyh-server' 到 'master'

gx



查看合并请求 !1729
@@ -250,7 +250,7 @@ class OptimizeController extends BaseController @@ -250,7 +250,7 @@ class OptimizeController extends BaseController
250 $query = $query->where('gl_project_deploy_build.site_status',$this->map['site_status']); 250 $query = $query->where('gl_project_deploy_build.site_status',$this->map['site_status']);
251 } 251 }
252 if(isset($this->map['seo_plan'])){ 252 if(isset($this->map['seo_plan'])){
253 - $query = $query->where('gl_project.seo_plan',$this->map['seo_plan']); 253 + $query = $query->where('gl_project_deploy_build.seo_plan',$this->map['seo_plan']);
254 } 254 }
255 if(isset($this->map['main_lang_id'])){ 255 if(isset($this->map['main_lang_id'])){
256 $query = $query->where('gl_project.main_lang_id',$this->map['main_lang_id']); 256 $query = $query->where('gl_project.main_lang_id',$this->map['main_lang_id']);
@@ -418,7 +418,10 @@ class ProjectController extends BaseController @@ -418,7 +418,10 @@ class ProjectController extends BaseController
418 $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']); 418 $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']);
419 $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']); 419 $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']);
420 $item['quality_mid_name'] = $manageModel->getName($item['quality_mid']); 420 $item['quality_mid_name'] = $manageModel->getName($item['quality_mid']);
421 - $item['plan'] = Project::planMap()[$item['plan']]; 421 + $planMap = Project::planMap();
  422 + $seoPlanMap = Project::seoMap();
  423 + $item['plan'] = $planMap[$item['plan']] ?? '';
  424 + $item['seo_plan'] = $seoPlanMap[$item['seo_plan']] ?? '';
422 $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date'])); 425 $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date']));
423 $item['autologin_code'] = getAutoLoginCode($item['id']); 426 $item['autologin_code'] = getAutoLoginCode($item['id']);
424 $domainModel = new DomainInfo(); 427 $domainModel = new DomainInfo();
  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :GoogleLink.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2025/4/3 15:52
  8 + */
  9 +
  10 +namespace App\Models\GoogleSearch;
  11 +
  12 +use App\Models\Base;
  13 +
  14 +/**
  15 + * @remark :外链数据
  16 + * @name :GoogleLink
  17 + * @author :lyh
  18 + * @method :post
  19 + * @time :2025/4/3 15:53
  20 + */
  21 +class GoogleLink extends Base
  22 +{
  23 + protected $table = 'gl_google_link';
  24 +}
@@ -115,6 +115,7 @@ class Project extends Base @@ -115,6 +115,7 @@ class Project extends Base
115 12 => '俄语商务版', 115 12 => '俄语商务版',
116 14 => '俄语旗舰版', 116 14 => '俄语旗舰版',
117 13 => '体验版', 117 13 => '体验版',
  118 + 15 => '白帽SEO方案',
118 ]; 119 ];
119 } 120 }
120 121
@@ -9,7 +9,90 @@ @@ -9,7 +9,90 @@
9 9
10 namespace App\Services; 10 namespace App\Services;
11 11
  12 +use App\Models\GoogleSearch\GoogleLink;
  13 +
12 class GoogleLinkService 14 class GoogleLinkService
13 { 15 {
14 - public $url = 'https://www.cmer.site/api/outlinks?domain=www.sinsmarts.com&pagesize=20&page=1'; 16 + public $url = 'https://www.cmer.site/api/outlinks';
  17 +
  18 + /**
  19 + * @remark :只拉取1页数据
  20 + * @name :linkPageData
  21 + * @author :lyh
  22 + * @method :post
  23 + * @time :2025/4/3 15:54
  24 + */
  25 + public function linkPageData($domain, $page = 1, $pagesize = 200)
  26 + {
  27 + $param = [
  28 + 'domain' => $domain,
  29 + 'page' => $page,
  30 + 'pagesize' => $pagesize,
  31 + ];
  32 + $queryString = http_build_query($param);
  33 + $url = $this->url . '?' . $queryString;
  34 + $response = http_get($url);
  35 + if (!empty($response) && !empty($response['data']['data'])) {
  36 + if (!empty($response['data']['data'])) {
  37 + return $this->saveLink($response['data']['data']);// 批量插入
  38 + }
  39 + }
  40 + return true;
  41 + }
  42 +
  43 + /**
  44 + * @remark :拉取所有数据
  45 + * @name :linkData
  46 + * @author :lyh
  47 + * @method :post
  48 + * @time :2025/4/3 15:55
  49 + */
  50 + public function linkData($domain, $page = 1, $pagesize = 200)
  51 + {
  52 + $param = [
  53 + 'domain' => $domain,
  54 + 'page' => $page,
  55 + 'pagesize' => $pagesize,
  56 + ];
  57 + do {
  58 + $queryString = http_build_query($param);
  59 + $url = $this->url . '?' . $queryString;
  60 + $response = http_get($url);
  61 + if (!empty($response) && !empty($response['data']['data'])) {
  62 + if (!empty($response['data']['data'])) {
  63 + $this->saveLink($response['data']['data']);// 批量插入
  64 + }
  65 + $page++;
  66 + $param['page'] = $page; // 更新页码
  67 + } else {
  68 + break; // 遇到错误或空数据时跳出循环
  69 + }
  70 + } while ($page <= $response['data']['last_page']); // 循环直到拉取完所有页数据
  71 + return true;
  72 + }
  73 +
  74 + /**
  75 + * @remark :保存数据库
  76 + * @name :saveLink
  77 + * @author :lyh
  78 + * @method :post
  79 + * @time :2025/4/3 15:26
  80 + */
  81 + public function saveLink($data){
  82 + $saveData = [];
  83 + foreach ($data as $val){
  84 + $timestamp = strtotime($val['created_at']);
  85 + $date = date('Y-m-d H:i:s', $timestamp ?? time());
  86 + $saveData[] = [
  87 + 'url'=>$val['url'],
  88 + 'moz_da'=>$val['mozDA'],
  89 + 'status'=>$val['status'],
  90 + 'google_search'=>$val['googlesearch'],
  91 + 'date'=>$date
  92 + ];
  93 + }
  94 + $linkModel = new GoogleLink();
  95 + $linkModel->insertAll($saveData);
  96 + return $saveData;
  97 + }
15 } 98 }