作者 刘锟

update

@@ -13,6 +13,8 @@ use App\Models\Com\UpdateOldInfo; @@ -13,6 +13,8 @@ use App\Models\Com\UpdateOldInfo;
13 use App\Models\News\News; 13 use App\Models\News\News;
14 use App\Models\News\NewsCategory; 14 use App\Models\News\NewsCategory;
15 use App\Models\Product\Category; 15 use App\Models\Product\Category;
  16 +use App\Models\Product\Extend;
  17 +use App\Models\Product\ExtendInfo;
16 use App\Models\Product\Keyword; 18 use App\Models\Product\Keyword;
17 use App\Models\Product\Product; 19 use App\Models\Product\Product;
18 use App\Models\RouteMap\RouteMap; 20 use App\Models\RouteMap\RouteMap;
@@ -241,6 +243,8 @@ class ProjectUpdate extends Command @@ -241,6 +243,8 @@ class ProjectUpdate extends Command
241 243
242 $model = new Product(); 244 $model = new Product();
243 $category_model = new Category(); 245 $category_model = new Category();
  246 + $extend_model = new Extend();
  247 + $extend_info_model = new ExtendInfo();
244 $logic = new CategoryLogic(); 248 $logic = new CategoryLogic();
245 249
246 foreach ($items as $item) { 250 foreach ($items as $item) {
@@ -286,12 +290,71 @@ class ProjectUpdate extends Command @@ -286,12 +290,71 @@ class ProjectUpdate extends Command
286 ]); 290 ]);
287 $this->set_map($route, RouteMap::SOURCE_PRODUCT, $id, $project_id); 291 $this->set_map($route, RouteMap::SOURCE_PRODUCT, $id, $project_id);
288 292
  293 + //扩展字段
  294 + if ($item['extend'] ?? []) {
  295 + foreach (array_reverse($item['extend']) as $ke => $ve) {
  296 + $extend = $extend_model->read(['title' => $ke]);
  297 + if (!$extend) {
  298 + $extend_key = $this->get_extend_key($extend_model);
  299 + $extend_model->add([
  300 + 'project_id' => $project_id,
  301 + 'title' => $ke,
  302 + 'type' => 1,
  303 + 'key' => $extend_key
  304 + ]);
  305 + } else {
  306 + $extend_key = $extend['key'];
  307 + }
  308 +
  309 + $extend_info = $extend_info_model->read(['key' => $extend_key, 'product_id' => $id]);
  310 + if (!$extend_info) {
  311 + $extend_info_model->add([
  312 + 'key' => $extend_key,
  313 + 'project_id' => $project_id,
  314 + 'product_id' => $id,
  315 + 'values' => $ve,
  316 + 'type' => 1
  317 + ]);
  318 + }
  319 + }
  320 + }
  321 +
289 CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PRODUCT, $id, $link_type, $language_list, $page_list); 322 CollectTask::_insert($item['url'], $project_id, RouteMap::SOURCE_PRODUCT, $id, $link_type, $language_list, $page_list);
290 $is_flush = 1; 323 $is_flush = 1;
291 } catch (\Exception $e) { 324 } catch (\Exception $e) {
292 echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', error: ' . $e->getMessage() . PHP_EOL; 325 echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', error: ' . $e->getMessage() . PHP_EOL;
293 continue; 326 continue;
294 } 327 }
  328 + }else{
  329 + $id = $product['id'];
  330 + //扩展字段
  331 + if ($item['extend'] ?? []) {
  332 + foreach (array_reverse($item['extend']) as $ke => $ve) {
  333 + $extend = $extend_model->read(['title' => $ke]);
  334 + if (!$extend) {
  335 + $extend_key = $this->get_extend_key($extend_model);
  336 + $extend_model->add([
  337 + 'project_id' => $project_id,
  338 + 'title' => $ke,
  339 + 'type' => 1,
  340 + 'key' => $extend_key
  341 + ]);
  342 + } else {
  343 + $extend_key = $extend['key'];
  344 + }
  345 +
  346 + $extend_info = $extend_info_model->read(['key' => $extend_key, 'product_id' => $id]);
  347 + if (!$extend_info) {
  348 + $extend_info_model->add([
  349 + 'key' => $extend_key,
  350 + 'project_id' => $project_id,
  351 + 'product_id' => $id,
  352 + 'values' => $ve,
  353 + 'type' => 1
  354 + ]);
  355 + }
  356 + }
  357 + }
295 } 358 }
296 } 359 }
297 } 360 }
@@ -646,4 +709,16 @@ class ProjectUpdate extends Command @@ -646,4 +709,16 @@ class ProjectUpdate extends Command
646 return $url_complete; 709 return $url_complete;
647 } 710 }
648 } 711 }
  712 +
  713 + //获取自定义字段key
  714 + protected function get_extend_key($model, $i = 1)
  715 + {
  716 + $key = 'pd_extended_field_';
  717 + $info = $model->read(['key' => $key . $i]);
  718 + if ($info !== false) {
  719 + return $this->get_extend_key($model, $i + 1);
  720 + } else {
  721 + return $key . $i;
  722 + }
  723 + }
649 } 724 }