作者 刘锟

update

@@ -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 }
@@ -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 }