正在显示
1 个修改的文件
包含
49 行增加
和
6 行删除
| @@ -2,8 +2,10 @@ | @@ -2,8 +2,10 @@ | ||
| 2 | 2 | ||
| 3 | namespace App\Console\Commands\Update; | 3 | namespace App\Console\Commands\Update; |
| 4 | 4 | ||
| 5 | +use App\Helper\Arr; | ||
| 5 | use App\Models\Com\UpdateLog; | 6 | use App\Models\Com\UpdateLog; |
| 6 | use App\Models\Product\Keyword; | 7 | use App\Models\Product\Keyword; |
| 8 | +use App\Models\Product\Product; | ||
| 7 | use App\Models\RouteMap\RouteMap; | 9 | use App\Models\RouteMap\RouteMap; |
| 8 | use App\Services\ProjectServer; | 10 | use App\Services\ProjectServer; |
| 9 | use Illuminate\Console\Command; | 11 | use Illuminate\Console\Command; |
| @@ -60,6 +62,8 @@ class ProjectUpdate extends Command | @@ -60,6 +62,8 @@ class ProjectUpdate extends Command | ||
| 60 | $api_url_arr = explode('?', $task->api_url); | 62 | $api_url_arr = explode('?', $task->api_url); |
| 61 | $api_url = $api_url_arr[0]; | 63 | $api_url = $api_url_arr[0]; |
| 62 | 64 | ||
| 65 | + $page_size = 10; | ||
| 66 | + | ||
| 63 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', task_type: ' . $api_type . ', update start' . PHP_EOL; | 67 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', task_type: ' . $api_type . ', update start' . PHP_EOL; |
| 64 | 68 | ||
| 65 | $task->status = UpdateLog::STATUS_ING;//同步中 | 69 | $task->status = UpdateLog::STATUS_ING;//同步中 |
| @@ -69,27 +73,66 @@ class ProjectUpdate extends Command | @@ -69,27 +73,66 @@ class ProjectUpdate extends Command | ||
| 69 | $project = ProjectServer::useProject($task->project_id); | 73 | $project = ProjectServer::useProject($task->project_id); |
| 70 | if ($project) { | 74 | if ($project) { |
| 71 | if ($api_type == 'website_info') { | 75 | if ($api_type == 'website_info') { |
| 76 | + //关键词 | ||
| 72 | $url = $api_url . '?' . http_build_query(['w' => 'website_info']); | 77 | $url = $api_url . '?' . http_build_query(['w' => 'website_info']); |
| 73 | $data = http_get($url, ['charset' => 'UTF-8']); | 78 | $data = http_get($url, ['charset' => 'UTF-8']); |
| 74 | if (isset($data['code']) && $data['code'] == 200) { | 79 | if (isset($data['code']) && $data['code'] == 200) { |
| 75 | - $tags = $data['data']['tags'] ?? []; | 80 | + $items = $data['data']['tags'] ?? []; |
| 76 | 81 | ||
| 77 | $model = new Keyword(); | 82 | $model = new Keyword(); |
| 78 | - foreach ($tags as $tag) { | ||
| 79 | - if(strlen($tag) > 50){ | 83 | + foreach ($items as $item) { |
| 84 | + if (strlen($item) > 50) { | ||
| 80 | continue; | 85 | continue; |
| 81 | } | 86 | } |
| 82 | - $keyword = $model->read(['title' => $tag], 'id'); | 87 | + $keyword = $model->read(['title' => $item], 'id'); |
| 83 | if (!$keyword) { | 88 | if (!$keyword) { |
| 84 | $id = $model->addReturnId([ | 89 | $id = $model->addReturnId([ |
| 85 | 'project_id' => $project_id, | 90 | 'project_id' => $project_id, |
| 86 | - 'title' => $tag | 91 | + 'title' => $item |
| 87 | ]); | 92 | ]); |
| 88 | - $route = RouteMap::setRoute($tag, RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $project_id); | 93 | + $route = RouteMap::setRoute($item, RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $project_id); |
| 89 | $model->edit(['route' => $route], ['id' => $id]); | 94 | $model->edit(['route' => $route], ['id' => $id]); |
| 90 | } | 95 | } |
| 91 | } | 96 | } |
| 92 | } | 97 | } |
| 98 | + } elseif ($api_type == 'post') { | ||
| 99 | + //产品 | ||
| 100 | + $url = $api_url . '?' . http_build_query(['w' => 'post', 'page' => 1, 'pagesize' => 0]); | ||
| 101 | + $data = http_get($url, ['charset' => 'UTF-8']); | ||
| 102 | + if (isset($data['code']) && $data['code'] == 200) { | ||
| 103 | + $count = $data['data']['count'] ?? 0; | ||
| 104 | + | ||
| 105 | + $total_page = ceil($count / $page_size); | ||
| 106 | + for ($page = 1; $page <= $total_page; $page++) { | ||
| 107 | + $url_page = $api_url . '?' . http_build_query(['w' => 'post', 'page' => $page, 'pagesize' => $page_size]); | ||
| 108 | + $data_page = http_get($url_page, ['charset' => 'UTF-8']); | ||
| 109 | + if (isset($data_page['code']) && $data_page['code'] == 200) { | ||
| 110 | + $items = $data['data']['data'] ?? []; | ||
| 111 | + | ||
| 112 | + $model = new Product(); | ||
| 113 | + | ||
| 114 | + foreach ($items as $item) { | ||
| 115 | + | ||
| 116 | + $product = $model->read(['title' => $item], 'id'); | ||
| 117 | + if (!$product) { | ||
| 118 | + $gallery = []; | ||
| 119 | + foreach ($item['images'] as $k_img => $img) { | ||
| 120 | + $gallery[] = ['alt' => '这是一张产品图', 'url' => $img]; | ||
| 121 | + } | ||
| 122 | + $id = $model->addReturnId([ | ||
| 123 | + 'project_id' => $project_id, | ||
| 124 | + 'title' => $item['ttile'], | ||
| 125 | + 'content' => $item['content'], | ||
| 126 | + 'thumb' => isset($gallery[0]) ? Arr::a2s($gallery[0]) : '', | ||
| 127 | + 'gallery' => Arr::a2s($gallery), | ||
| 128 | + ]); | ||
| 129 | + $route = RouteMap::setRoute($item['ttile'], RouteMap::SOURCE_PRODUCT, $id, $project_id); | ||
| 130 | + $model->edit(['route' => $route], ['id' => $id]); | ||
| 131 | + } | ||
| 132 | + } | ||
| 133 | + } | ||
| 134 | + } | ||
| 135 | + } | ||
| 93 | } | 136 | } |
| 94 | } | 137 | } |
| 95 | //关闭数据库 | 138 | //关闭数据库 |
-
请 注册 或 登录 后发表评论