作者 lyh

Merge branch 'master' of http://47.244.231.31:8099/zhl/globalso-v6 into develop

@@ -75,10 +75,27 @@ class HtmlCollect extends Command @@ -75,10 +75,27 @@ class HtmlCollect extends Command
75 $collect_info->status = CollectTask::STATUS_ING; 75 $collect_info->status = CollectTask::STATUS_ING;
76 $collect_info->save(); 76 $collect_info->save();
77 77
  78 + //获取站点正式和测试域名
  79 + $web_url_domain = $collect_info->domain;
  80 + $home_url = $collect_info->domain;
  81 + $url_web_config = 'https://' . $collect_info->domain . '/wp-content/cache/user_config.text';
  82 + $data_config = http_get($url_web_config, ['charset' => 'UTF-8']);
  83 + if ($data_config) {
  84 + $web_url_arr = parse_url($data_config['web_url_domain']);
  85 + if (isset($web_url_arr['host'])) {
  86 + $web_url_domain = $web_url_arr['host'];
  87 + }
  88 +
  89 + $home_url_arr = parse_url($data_config['home_url']);
  90 + if (isset($home_url_arr['host'])) {
  91 + $home_url = $home_url_arr['host'];
  92 + }
  93 + }
  94 +
78 //采集html页面,下载资源到本地并替换 95 //采集html页面,下载资源到本地并替换
79 try { 96 try {
80 $html = file_get_contents('https://' . $collect_info->domain . $collect_info->route); 97 $html = file_get_contents('https://' . $collect_info->domain . $collect_info->route);
81 - $source_list = $this->html_preg($html, $project_id, $collect_info->domain); 98 + $source_list = $this->html_preg($html, $project_id, $collect_info->domain, $web_url_domain, $home_url);
82 99
83 if ($source_list) { 100 if ($source_list) {
84 $html = $this->upload_source($html, $source_list, $project_id); 101 $html = $this->upload_source($html, $source_list, $project_id);
@@ -164,7 +181,7 @@ class HtmlCollect extends Command @@ -164,7 +181,7 @@ class HtmlCollect extends Command
164 } 181 }
165 182
166 //正则匹配html资源 183 //正则匹配html资源
167 - protected function html_preg($html, $project_id, $domain) 184 + protected function html_preg($html, $project_id, $domain, $web_url_domain, $home_url)
168 { 185 {
169 $source = []; 186 $source = [];
170 187
@@ -176,7 +193,7 @@ class HtmlCollect extends Command @@ -176,7 +193,7 @@ class HtmlCollect extends Command
176 preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_img); 193 preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_img);
177 $img = $result_img[2] ?? []; 194 $img = $result_img[2] ?? [];
178 foreach ($img as $vi) { 195 foreach ($img as $vi) {
179 - $check_vi = $this->url_check($vi, $project_id, $domain); 196 + $check_vi = $this->url_check($vi, $project_id, $domain, $web_url_domain, $home_url);
180 $check_vi && $source[] = $check_vi; 197 $check_vi && $source[] = $check_vi;
181 } 198 }
182 199
@@ -184,7 +201,7 @@ class HtmlCollect extends Command @@ -184,7 +201,7 @@ class HtmlCollect extends Command
184 preg_match_all('/<script\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_js); 201 preg_match_all('/<script\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_js);
185 $js = $result_js[2] ?? []; 202 $js = $result_js[2] ?? [];
186 foreach ($js as $vj) { 203 foreach ($js as $vj) {
187 - $check_vj = $this->url_check($vj, $project_id, $domain); 204 + $check_vj = $this->url_check($vj, $project_id, $domain, $web_url_domain, $home_url);
188 $check_vj && $source[] = $check_vj; 205 $check_vj && $source[] = $check_vj;
189 } 206 }
190 207
@@ -192,7 +209,7 @@ class HtmlCollect extends Command @@ -192,7 +209,7 @@ class HtmlCollect extends Command
192 preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_video); 209 preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_video);
193 $video = $result_video[2] ?? []; 210 $video = $result_video[2] ?? [];
194 foreach ($video as $vv) { 211 foreach ($video as $vv) {
195 - $check_vv = $this->url_check($vv, $project_id, $domain); 212 + $check_vv = $this->url_check($vv, $project_id, $domain, $web_url_domain, $home_url);
196 $check_vv && $source[] = $check_vv; 213 $check_vv && $source[] = $check_vv;
197 } 214 }
198 215
@@ -200,7 +217,7 @@ class HtmlCollect extends Command @@ -200,7 +217,7 @@ class HtmlCollect extends Command
200 preg_match_all('/<link\s+[^>]*?href\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_css); 217 preg_match_all('/<link\s+[^>]*?href\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_css);
201 $css = $result_css[2] ?? []; 218 $css = $result_css[2] ?? [];
202 foreach ($css as $vc) { 219 foreach ($css as $vc) {
203 - $check_vc = $this->url_check($vc, $project_id, $domain); 220 + $check_vc = $this->url_check($vc, $project_id, $domain, $web_url_domain, $home_url);
204 $check_vc && $source[] = $check_vc; 221 $check_vc && $source[] = $check_vc;
205 } 222 }
206 223
@@ -208,7 +225,7 @@ class HtmlCollect extends Command @@ -208,7 +225,7 @@ class HtmlCollect extends Command
208 preg_match_all("/url\(['\"]?(\s*[^>]+?)['\"]?\)/i", $html, $result_css_b); 225 preg_match_all("/url\(['\"]?(\s*[^>]+?)['\"]?\)/i", $html, $result_css_b);
209 $css_b = $result_css_b[1] ?? []; 226 $css_b = $result_css_b[1] ?? [];
210 foreach ($css_b as $vc_b) { 227 foreach ($css_b as $vc_b) {
211 - $check_vc_b = $this->url_check($vc_b, $project_id, $domain); 228 + $check_vc_b = $this->url_check($vc_b, $project_id, $domain, $web_url_domain, $home_url);
212 $check_vc_b && $source[] = $check_vc_b; 229 $check_vc_b && $source[] = $check_vc_b;
213 } 230 }
214 231
@@ -217,7 +234,7 @@ class HtmlCollect extends Command @@ -217,7 +234,7 @@ class HtmlCollect extends Command
217 } 234 }
218 235
219 //判断资源是否需要下载 236 //判断资源是否需要下载
220 - protected function url_check($url, $project_id, $domain) 237 + protected function url_check($url, $project_id, $domain, $web_url_domain, $home_url)
221 { 238 {
222 if ($url) { 239 if ($url) {
223 $arr = parse_url($url); 240 $arr = parse_url($url);
@@ -227,11 +244,10 @@ class HtmlCollect extends Command @@ -227,11 +244,10 @@ class HtmlCollect extends Command
227 $query = $arr['query'] ?? ''; 244 $query = $arr['query'] ?? '';
228 245
229 if ( 246 if (
230 - (strpos($host, '.globalso.') === false) &&  
231 - (strpos($host, '.goodao.') === false) &&  
232 - $path && (strpos($path, '.') !== false) 247 + (empty($host) || $host == $web_url_domain || $host == $home_url)
  248 + && $path
  249 + && (strpos($path, '.') !== false)
233 ) { 250 ) {
234 -  
235 $source = CollectSource::where('project_id', $project_id)->where('origin', $url)->first(); 251 $source = CollectSource::where('project_id', $project_id)->where('origin', $url)->first();
236 if (!$source) { 252 if (!$source) {
237 return [ 253 return [
@@ -290,6 +306,9 @@ class HtmlCollect extends Command @@ -290,6 +306,9 @@ class HtmlCollect extends Command
290 if (!$vcs) { 306 if (!$vcs) {
291 continue; 307 continue;
292 } 308 }
  309 + if (strpos($vcs, '.') === false) {
  310 + continue;
  311 + }
293 312
294 $source_info = CollectSource::where('project_id', $project_id)->where('origin', $vcs)->first(); 313 $source_info = CollectSource::where('project_id', $project_id)->where('origin', $vcs)->first();
295 if ($source_info) { 314 if ($source_info) {
@@ -75,10 +75,26 @@ class HtmlLanguageCollect extends Command @@ -75,10 +75,26 @@ class HtmlLanguageCollect extends Command
75 $collect_info->status = CollectTask::STATUS_ING; 75 $collect_info->status = CollectTask::STATUS_ING;
76 $collect_info->save(); 76 $collect_info->save();
77 77
  78 + $web_url_domain = $collect_info->domain;
  79 + $home_url = $collect_info->domain;
  80 + $url_web_config = 'https://' . $collect_info->domain . '/wp-content/cache/user_config.text';
  81 + $data_config = http_get($url_web_config, ['charset' => 'UTF-8']);
  82 + if ($data_config) {
  83 + $web_url_arr = parse_url($data_config['web_url_domain']);
  84 + if (isset($web_url_arr['host'])) {
  85 + $web_url_domain = $web_url_arr['host'];
  86 + }
  87 +
  88 + $home_url_arr = parse_url($data_config['home_url']);
  89 + if (isset($home_url_arr['host'])) {
  90 + $home_url = $home_url_arr['host'];
  91 + }
  92 + }
  93 +
78 //采集html页面,下载资源到本地并替换 94 //采集html页面,下载资源到本地并替换
79 try { 95 try {
80 $html = file_get_contents('https://' . $collect_info->domain . $collect_info->route); 96 $html = file_get_contents('https://' . $collect_info->domain . $collect_info->route);
81 - $source_list = $this->html_preg($html, $project_id, $collect_info->domain); 97 + $source_list = $this->html_preg($html, $project_id, $collect_info->domain, $web_url_domain, $home_url);
82 98
83 if ($source_list) { 99 if ($source_list) {
84 $html = $this->upload_source($html, $source_list, $project_id); 100 $html = $this->upload_source($html, $source_list, $project_id);
@@ -164,7 +180,7 @@ class HtmlLanguageCollect extends Command @@ -164,7 +180,7 @@ class HtmlLanguageCollect extends Command
164 } 180 }
165 181
166 //正则匹配html资源 182 //正则匹配html资源
167 - protected function html_preg($html, $project_id, $domain) 183 + protected function html_preg($html, $project_id, $domain, $web_url_domain, $home_url)
168 { 184 {
169 $source = []; 185 $source = [];
170 186
@@ -176,7 +192,7 @@ class HtmlLanguageCollect extends Command @@ -176,7 +192,7 @@ class HtmlLanguageCollect extends Command
176 preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_img); 192 preg_match_all('/<img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_img);
177 $img = $result_img[2] ?? []; 193 $img = $result_img[2] ?? [];
178 foreach ($img as $vi) { 194 foreach ($img as $vi) {
179 - $check_vi = $this->url_check($vi, $project_id, $domain); 195 + $check_vi = $this->url_check($vi, $project_id, $domain, $web_url_domain, $home_url);
180 $check_vi && $source[] = $check_vi; 196 $check_vi && $source[] = $check_vi;
181 } 197 }
182 198
@@ -184,7 +200,7 @@ class HtmlLanguageCollect extends Command @@ -184,7 +200,7 @@ class HtmlLanguageCollect extends Command
184 preg_match_all('/<script\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_js); 200 preg_match_all('/<script\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_js);
185 $js = $result_js[2] ?? []; 201 $js = $result_js[2] ?? [];
186 foreach ($js as $vj) { 202 foreach ($js as $vj) {
187 - $check_vj = $this->url_check($vj, $project_id, $domain); 203 + $check_vj = $this->url_check($vj, $project_id, $domain, $web_url_domain, $home_url);
188 $check_vj && $source[] = $check_vj; 204 $check_vj && $source[] = $check_vj;
189 } 205 }
190 206
@@ -192,7 +208,7 @@ class HtmlLanguageCollect extends Command @@ -192,7 +208,7 @@ class HtmlLanguageCollect extends Command
192 preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_video); 208 preg_match_all('/<source\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_video);
193 $video = $result_video[2] ?? []; 209 $video = $result_video[2] ?? [];
194 foreach ($video as $vv) { 210 foreach ($video as $vv) {
195 - $check_vv = $this->url_check($vv, $project_id, $domain); 211 + $check_vv = $this->url_check($vv, $project_id, $domain, $web_url_domain, $home_url);
196 $check_vv && $source[] = $check_vv; 212 $check_vv && $source[] = $check_vv;
197 } 213 }
198 214
@@ -200,7 +216,7 @@ class HtmlLanguageCollect extends Command @@ -200,7 +216,7 @@ class HtmlLanguageCollect extends Command
200 preg_match_all('/<link\s+[^>]*?href\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_css); 216 preg_match_all('/<link\s+[^>]*?href\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $html, $result_css);
201 $css = $result_css[2] ?? []; 217 $css = $result_css[2] ?? [];
202 foreach ($css as $vc) { 218 foreach ($css as $vc) {
203 - $check_vc = $this->url_check($vc, $project_id, $domain); 219 + $check_vc = $this->url_check($vc, $project_id, $domain, $web_url_domain, $home_url);
204 $check_vc && $source[] = $check_vc; 220 $check_vc && $source[] = $check_vc;
205 } 221 }
206 222
@@ -208,7 +224,7 @@ class HtmlLanguageCollect extends Command @@ -208,7 +224,7 @@ class HtmlLanguageCollect extends Command
208 preg_match_all("/url\(['\"]?(\s*[^>]+?)['\"]?\)/i", $html, $result_css_b); 224 preg_match_all("/url\(['\"]?(\s*[^>]+?)['\"]?\)/i", $html, $result_css_b);
209 $css_b = $result_css_b[1] ?? []; 225 $css_b = $result_css_b[1] ?? [];
210 foreach ($css_b as $vc_b) { 226 foreach ($css_b as $vc_b) {
211 - $check_vc_b = $this->url_check($vc_b, $project_id, $domain); 227 + $check_vc_b = $this->url_check($vc_b, $project_id, $domain, $web_url_domain, $home_url);
212 $check_vc_b && $source[] = $check_vc_b; 228 $check_vc_b && $source[] = $check_vc_b;
213 } 229 }
214 230
@@ -217,7 +233,7 @@ class HtmlLanguageCollect extends Command @@ -217,7 +233,7 @@ class HtmlLanguageCollect extends Command
217 } 233 }
218 234
219 //判断资源是否需要下载 235 //判断资源是否需要下载
220 - protected function url_check($url, $project_id, $domain) 236 + protected function url_check($url, $project_id, $domain, $web_url_domain, $home_url)
221 { 237 {
222 if ($url) { 238 if ($url) {
223 $arr = parse_url($url); 239 $arr = parse_url($url);
@@ -227,11 +243,10 @@ class HtmlLanguageCollect extends Command @@ -227,11 +243,10 @@ class HtmlLanguageCollect extends Command
227 $query = $arr['query'] ?? ''; 243 $query = $arr['query'] ?? '';
228 244
229 if ( 245 if (
230 - (strpos($host, '.globalso.') === false) &&  
231 - (strpos($host, '.goodao.') === false) &&  
232 - $path && (strpos($path, '.') !== false) 246 + (empty($host) || $host == $web_url_domain || $host == $home_url)
  247 + && $path
  248 + && (strpos($path, '.') !== false)
233 ) { 249 ) {
234 -  
235 $source = CollectSource::where('project_id', $project_id)->where('origin', $url)->first(); 250 $source = CollectSource::where('project_id', $project_id)->where('origin', $url)->first();
236 if (!$source) { 251 if (!$source) {
237 return [ 252 return [
@@ -290,6 +305,9 @@ class HtmlLanguageCollect extends Command @@ -290,6 +305,9 @@ class HtmlLanguageCollect extends Command
290 if (!$vcs) { 305 if (!$vcs) {
291 continue; 306 continue;
292 } 307 }
  308 + if (strpos($vcs, '.') === false) {
  309 + continue;
  310 + }
293 311
294 $source_info = CollectSource::where('project_id', $project_id)->where('origin', $vcs)->first(); 312 $source_info = CollectSource::where('project_id', $project_id)->where('origin', $vcs)->first();
295 if ($source_info) { 313 if ($source_info) {
@@ -91,6 +91,13 @@ class ProjectUpdate extends Command @@ -91,6 +91,13 @@ class ProjectUpdate extends Command
91 if ($data_language) { 91 if ($data_language) {
92 $language_list = array_column($data_language, 'short'); 92 $language_list = array_column($data_language, 'short');
93 } 93 }
  94 + //获取所有页面
  95 + $page_list = [];
  96 + $url_page = 'https://' . $domain_arr['host'] . '/wp-content/cache/pages_list.json';
  97 + $data_page = http_get($url_page, ['charset' => 'UTF-8']);
  98 + if ($data_page) {
  99 + $page_list = array_column($data_page, 'path');
  100 + }
94 101
95 //设置数据库 102 //设置数据库
96 $project = ProjectServer::useProject($project_id); 103 $project = ProjectServer::useProject($project_id);
@@ -142,7 +149,7 @@ class ProjectUpdate extends Command @@ -142,7 +149,7 @@ class ProjectUpdate extends Command
142 $id = $keyword['id']; 149 $id = $keyword['id'];
143 } 150 }
144 151
145 - CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $link_type, $language_list); 152 + CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $link_type, $language_list, $page_list);
146 } 153 }
147 } 154 }
148 } 155 }
@@ -274,7 +281,7 @@ class ProjectUpdate extends Command @@ -274,7 +281,7 @@ class ProjectUpdate extends Command
274 $id = $product['id']; 281 $id = $product['id'];
275 } 282 }
276 283
277 - CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PRODUCT, $id, $link_type, $language_list); 284 + CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PRODUCT, $id, $link_type, $language_list, $page_list);
278 } 285 }
279 } 286 }
280 } 287 }
@@ -328,7 +335,7 @@ class ProjectUpdate extends Command @@ -328,7 +335,7 @@ class ProjectUpdate extends Command
328 $id = $news['id']; 335 $id = $news['id'];
329 } 336 }
330 337
331 - CollectTask::_insert($item['url'], $project_id, $api_type == 'news' ? RouteMap::SOURCE_NEWS : RouteMap::SOURCE_BLOG, $id, $link_type, $language_list); 338 + CollectTask::_insert($item['url'], $project_id, $api_type == 'news' ? RouteMap::SOURCE_NEWS : RouteMap::SOURCE_BLOG, $id, $link_type, $language_list, $page_list);
332 } 339 }
333 } 340 }
334 } 341 }
@@ -376,7 +383,7 @@ class ProjectUpdate extends Command @@ -376,7 +383,7 @@ class ProjectUpdate extends Command
376 $id = $custom['id']; 383 $id = $custom['id'];
377 } 384 }
378 385
379 - CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PAGE, $id, $link_type, $language_list); 386 + CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PAGE, $id, $link_type, $language_list, $page_list);
380 } 387 }
381 } 388 }
382 } 389 }
@@ -177,10 +177,11 @@ class UpdateSeoTdk extends Command @@ -177,10 +177,11 @@ class UpdateSeoTdk extends Command
177 if(!Redis::setnx($cache_key, 1)){ 177 if(!Redis::setnx($cache_key, 1)){
178 continue; 178 continue;
179 } 179 }
180 - Redis::expire($cache_key, 120); 180 + Redis::expire($cache_key, 300);
181 181
182 echo date('Y-m-d H:i:s') . '更新--' . $table . ': 项目id' . $project_id . ':id' . $v['id'] . PHP_EOL; 182 echo date('Y-m-d H:i:s') . '更新--' . $table . ': 项目id' . $project_id . ':id' . $v['id'] . PHP_EOL;
183 - 183 + $v = DB::connection('custom_mysql')->table($table)->where('id', $v['id'])->first();
  184 + $v = (array)$v;
184 $data = []; 185 $data = [];
185 $json_field = ''; 186 $json_field = '';
186 foreach ($map as $ai_key => $field) { 187 foreach ($map as $ai_key => $field) {
  1 +<?php
  2 +
  3 +namespace App\Console\Commands;
  4 +
  5 +use App\Helper\Arr;
  6 +use App\Helper\Common;
  7 +use App\Helper\Gpt;
  8 +use App\Helper\Translate;
  9 +use App\Models\Ai\AiCommand;
  10 +use App\Models\Mail\Mail;
  11 +use App\Models\Project\DeployOptimize;
  12 +use App\Models\Project\Project;
  13 +use App\Models\Project\ProjectUpdateTdk;
  14 +use App\Models\User\User;
  15 +use App\Services\ProjectServer;
  16 +use Illuminate\Console\Command;
  17 +use Illuminate\Support\Facades\Cache;
  18 +use Illuminate\Support\Facades\DB;
  19 +use Illuminate\Support\Facades\Redis;
  20 +
  21 +/**
  22 + * 初始化项目
  23 + * Class InitProject
  24 + * @package App\Console\Commands
  25 + * @author zbj
  26 + * @date 2023/10/8
  27 + */
  28 +class UpdateSeoTdkCrontab extends Command
  29 +{
  30 + /**
  31 + * The name and signature of the console command.
  32 + *
  33 + * @var string
  34 + */
  35 + protected $signature = 'update_seo_tdk_crontab';
  36 +
  37 + /**
  38 + * The console command description.
  39 + *
  40 + * @var string
  41 + */
  42 + protected $description = '一键生成tdk';
  43 +
  44 + /**
  45 + * @return bool
  46 + */
  47 + public function handle()
  48 + {
  49 + $project_ids = Project::where('type', Project::TYPE_TWO)->pluck('id')->toArray();
  50 + foreach ($project_ids as $project_id){
  51 + ProjectUpdateTdk::add_task($project_id);
  52 + }
  53 + }
  54 +
  55 +}
@@ -37,6 +37,7 @@ class Kernel extends ConsoleKernel @@ -37,6 +37,7 @@ class Kernel extends ConsoleKernel
37 $schedule->command('domain_info')->dailyAt('01:00')->withoutOverlapping(1);// 更新域名|证书结束时间,每天凌晨1点执行一次 37 $schedule->command('domain_info')->dailyAt('01:00')->withoutOverlapping(1);// 更新域名|证书结束时间,每天凌晨1点执行一次
38 $schedule->command('last_inquiry')->dailyAt('04:00')->withoutOverlapping(1);// 最近一次询盘信息 38 $schedule->command('last_inquiry')->dailyAt('04:00')->withoutOverlapping(1);// 最近一次询盘信息
39 $schedule->command('update_progress')->everyThirtyMinutes()->withoutOverlapping(1);//监控更新 39 $schedule->command('update_progress')->everyThirtyMinutes()->withoutOverlapping(1);//监控更新
  40 + $schedule->command('update_seo_tdk_crontab')->dailyAt('00:00')->withoutOverlapping(1); //更新上线项目TDK
40 } 41 }
41 42
42 /** 43 /**
@@ -17,7 +17,7 @@ class CollectTask extends Base @@ -17,7 +17,7 @@ class CollectTask extends Base
17 const STATUS_COM = 2; 17 const STATUS_COM = 2;
18 const STATUS_FAIL = 3; 18 const STATUS_FAIL = 3;
19 19
20 - public static function _insert($url, $project_id, $source, $source_id, $link_type = 0, $language_list = []) 20 + public static function _insert($url, $project_id, $source, $source_id, $link_type = 0, $language_list = [], $page_list = [])
21 { 21 {
22 if (!$url) { 22 if (!$url) {
23 return; 23 return;
@@ -35,47 +35,46 @@ class CollectTask extends Base @@ -35,47 +35,46 @@ class CollectTask extends Base
35 ]; 35 ];
36 36
37 $task = self::where($where)->first(); 37 $task = self::where($where)->first();
  38 + $data = [];
  39 + $now = date('Y-m-d H:i:s');
38 if (!$task) { 40 if (!$task) {
39 - $now = date('Y-m-d H:i:s');  
40 - $data = [  
41 - [ 41 + $data[] = [
  42 + 'project_id' => $project_id,
  43 + 'source' => $source,
  44 + 'source_id' => $source_id,
  45 + 'domain' => $url_arr['host'],
  46 + 'route' => $url_arr['path'],
  47 + 'language' => '',
  48 + 'created_at' => $now,
  49 + 'updated_at' => $now,
  50 + ];
  51 + }
  52 +
  53 + if ($link_type > 0 && $language_list && in_array($url_arr['path'], $page_list)) {
  54 + $domain_arr = explode('.', $url_arr['host']);
  55 + foreach ($language_list as $v_lan) {
  56 + if ($link_type == 1) {
  57 + //二级域名
  58 + $domain_arr[0] = $v_lan;
  59 + $new_domain = implode('.', $domain_arr);
  60 + } else {
  61 + //二级目录
  62 + $new_domain = $url_arr['host'] . '/' . $v_lan;
  63 + }
  64 +
  65 + $data[] = [
42 'project_id' => $project_id, 66 'project_id' => $project_id,
43 'source' => $source, 67 'source' => $source,
44 'source_id' => $source_id, 68 'source_id' => $source_id,
45 - 'domain' => $url_arr['host'], 69 + 'domain' => $new_domain,
46 'route' => $url_arr['path'], 70 'route' => $url_arr['path'],
47 - 'language' => '', 71 + 'language' => $v_lan,
48 'created_at' => $now, 72 'created_at' => $now,
49 'updated_at' => $now, 73 'updated_at' => $now,
50 - ]  
51 - ];  
52 -  
53 - if ($link_type > 0 && $language_list) {  
54 - $domain_arr = explode('.', $url_arr['host']);  
55 - foreach ($language_list as $v_lan) {  
56 - if ($link_type == 1) {  
57 - //二级域名  
58 - $domain_arr[0] = $v_lan;  
59 - $new_domain = implode('.', $domain_arr);  
60 - } else {  
61 - //二级目录  
62 - $new_domain = $url_arr['host'] . '/' . $v_lan;  
63 - }  
64 -  
65 - $data[] = [  
66 - 'project_id' => $project_id,  
67 - 'source' => $source,  
68 - 'source_id' => $source_id,  
69 - 'domain' => $new_domain,  
70 - 'route' => $url_arr['path'],  
71 - 'language' => $v_lan,  
72 - 'created_at' => $now,  
73 - 'updated_at' => $now,  
74 - ];  
75 - } 74 + ];
76 } 75 }
77 -  
78 - self::insert($data);  
79 } 76 }
  77 +
  78 + self::insert($data);
80 } 79 }
81 } 80 }
@@ -104,7 +104,11 @@ class CosService @@ -104,7 +104,11 @@ class CosService
104 'verify_peer_name' => false, 104 'verify_peer_name' => false,
105 ] 105 ]
106 ]; 106 ];
107 - $body = file_get_contents($file_url,false,stream_context_create($opts)); 107 + try {
  108 + $body = file_get_contents($file_url,false,stream_context_create($opts));
  109 + }catch (\Exception $e){
  110 + return '';
  111 + }
108 112
109 try { 113 try {
110 $cosClient->putObject([ 114 $cosClient->putObject([