作者 lyh

gx

@@ -1174,3 +1174,15 @@ function getDeployOptimize($project_id){ @@ -1174,3 +1174,15 @@ function getDeployOptimize($project_id){
1174 return $info; 1174 return $info;
1175 } 1175 }
1176 1176
  1177 +/**
  1178 + * @remark :获取域名
  1179 + * @name :getDomain
  1180 + * @author :lyh
  1181 + * @method :post
  1182 + * @time :2025/4/3 16:19
  1183 + */
  1184 +function getDomain($url) {
  1185 + $parsedUrl = parse_url($url);
  1186 + return $parsedUrl['host'] ?? $url; // 如果解析失败,返回原始 URL
  1187 +}
  1188 +
@@ -9,9 +9,22 @@ @@ -9,9 +9,22 @@
9 9
10 namespace App\Http\Controllers\Bside\GoogleKeyword; 10 namespace App\Http\Controllers\Bside\GoogleKeyword;
11 11
  12 +use App\Enums\Common\Code;
12 use App\Http\Controllers\Bside\BaseController; 13 use App\Http\Controllers\Bside\BaseController;
  14 +use App\Services\GoogleLinkService;
13 15
14 class GoogleLinkController extends BaseController 16 class GoogleLinkController extends BaseController
15 { 17 {
16 - 18 + /**
  19 + * @remark :外链数据
  20 + * @name :getLink
  21 + * @author :lyh
  22 + * @method :post
  23 + * @time :2025/4/3 16:09
  24 + */
  25 + public function getLink(){
  26 + $linkService = new GoogleLinkService();
  27 + $data = $linkService->linkPageData($this->user['domain'],$this->user['project_id']);
  28 + $this->response('success',Code::SUCCESS,$data);
  29 + }
17 } 30 }
@@ -22,24 +22,30 @@ class GoogleLinkService @@ -22,24 +22,30 @@ class GoogleLinkService
22 * @method :post 22 * @method :post
23 * @time :2025/4/3 15:54 23 * @time :2025/4/3 15:54
24 */ 24 */
25 - public function linkPageData($domain, $page = 1, $pagesize = 200) 25 + public function linkPageData($domain,$project_id)
26 { 26 {
  27 + $domain = getDomain($domain);
  28 + // 第一次请求,获取总数
27 $param = [ 29 $param = [
28 'domain' => $domain, 30 'domain' => $domain,
29 - 'page' => $page,  
30 - 'pagesize' => $pagesize, 31 + 'page' => 1,
  32 + 'pagesize' => 1, // 只拉取一条数据,获取 total
31 ]; 33 ];
32 $queryString = http_build_query($param); 34 $queryString = http_build_query($param);
33 $url = $this->url . '?' . $queryString; 35 $url = $this->url . '?' . $queryString;
34 $response = http_get($url); 36 $response = http_get($url);
35 - if (!empty($response) && !empty($response['data']['data'])) { 37 + if (!empty($response) && !empty($response['data']['total'])) {
  38 + // 计算总数并一次性获取所有数据
  39 + $param['pagesize'] = $response['data']['total'];
  40 + $queryString = http_build_query($param);
  41 + $url = $this->url . '?' . $queryString;
  42 + $response = http_get($url);
36 if (!empty($response['data']['data'])) { 43 if (!empty($response['data']['data'])) {
37 - return $this->saveLink($response['data']['data']);// 批量插入 44 + return $this->saveLink($response['data']['data'],$project_id,$domain);// 批量插入
38 } 45 }
39 } 46 }
40 - return true; 47 + return false;
41 } 48 }
42 -  
43 /** 49 /**
44 * @remark :拉取所有数据 50 * @remark :拉取所有数据
45 * @name :linkData 51 * @name :linkData
@@ -47,8 +53,9 @@ class GoogleLinkService @@ -47,8 +53,9 @@ class GoogleLinkService
47 * @method :post 53 * @method :post
48 * @time :2025/4/3 15:55 54 * @time :2025/4/3 15:55
49 */ 55 */
50 - public function linkData($domain, $page = 1, $pagesize = 200) 56 + public function linkData($domain,$project_id, $page = 1, $pagesize = 200)
51 { 57 {
  58 + $domain = getDomain($domain);
52 $param = [ 59 $param = [
53 'domain' => $domain, 60 'domain' => $domain,
54 'page' => $page, 61 'page' => $page,
@@ -60,7 +67,7 @@ class GoogleLinkService @@ -60,7 +67,7 @@ class GoogleLinkService
60 $response = http_get($url); 67 $response = http_get($url);
61 if (!empty($response) && !empty($response['data']['data'])) { 68 if (!empty($response) && !empty($response['data']['data'])) {
62 if (!empty($response['data']['data'])) { 69 if (!empty($response['data']['data'])) {
63 - $this->saveLink($response['data']['data']);// 批量插入 70 + $this->saveLink($response['data']['data'],$project_id,$domain);// 批量插入
64 } 71 }
65 $page++; 72 $page++;
66 $param['page'] = $page; // 更新页码 73 $param['page'] = $page; // 更新页码
@@ -78,7 +85,7 @@ class GoogleLinkService @@ -78,7 +85,7 @@ class GoogleLinkService
78 * @method :post 85 * @method :post
79 * @time :2025/4/3 15:26 86 * @time :2025/4/3 15:26
80 */ 87 */
81 - public function saveLink($data){ 88 + public function saveLink($data,$project_id,$domain){
82 $saveData = []; 89 $saveData = [];
83 foreach ($data as $val){ 90 foreach ($data as $val){
84 $timestamp = strtotime($val['created_at']); 91 $timestamp = strtotime($val['created_at']);
@@ -88,7 +95,9 @@ class GoogleLinkService @@ -88,7 +95,9 @@ class GoogleLinkService
88 'moz_da'=>$val['mozDA'], 95 'moz_da'=>$val['mozDA'],
89 'status'=>$val['status'], 96 'status'=>$val['status'],
90 'google_search'=>$val['googlesearch'], 97 'google_search'=>$val['googlesearch'],
91 - 'date'=>$date 98 + 'date'=>$date,
  99 + 'project_id'=>$project_id,
  100 + 'domain'=>$domain
92 ]; 101 ];
93 } 102 }
94 $linkModel = new GoogleLink(); 103 $linkModel = new GoogleLink();
@@ -719,6 +719,10 @@ Route::middleware(['bloginauth'])->group(function () { @@ -719,6 +719,10 @@ Route::middleware(['bloginauth'])->group(function () {
719 Route::any('/del', [\App\Http\Controllers\Bside\Gpt\ChatController::class, 'del'])->name('gpt_del'); 719 Route::any('/del', [\App\Http\Controllers\Bside\Gpt\ChatController::class, 'del'])->name('gpt_del');
720 Route::any('/sendMessage', [\App\Http\Controllers\Bside\Gpt\ChatController::class, 'sendMessage'])->name('gpt_sendMessage'); 720 Route::any('/sendMessage', [\App\Http\Controllers\Bside\Gpt\ChatController::class, 'sendMessage'])->name('gpt_sendMessage');
721 }); 721 });
  722 +
  723 + Route::prefix('google_link')->group(function () {
  724 + Route::any('/', [\App\Http\Controllers\Bside\GoogleKeyword\GoogleLinkController::class,'getLink'])->name('google_link_getLink');
  725 + });
722 }); 726 });
723 //无需登录验证的路由组 727 //无需登录验证的路由组
724 Route::group([], function () { 728 Route::group([], function () {