作者 刘锟

import

@@ -50,6 +50,18 @@ class ProjectImport extends Command @@ -50,6 +50,18 @@ class ProjectImport extends Command
50 50
51 echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import start' . PHP_EOL; 51 echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import start' . PHP_EOL;
52 52
  53 + $is_gbk = 0;
  54 + $file_code_type = $this->get_code_type($task->file_url);
  55 + if ($file_code_type === false) {
  56 + echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: 文件编码格式错误' . PHP_EOL;
  57 + $task->status = ImportTask::STATUS_COM;//导入完成
  58 + $task->save();
  59 + return true;
  60 + } elseif ($file_code_type === 'GBK') {
  61 + $is_gbk = 1;
  62 + setlocale(LC_ALL, 'zh_CN');
  63 + }
  64 +
53 //读取csv文件 65 //读取csv文件
54 $line_of_text = []; 66 $line_of_text = [];
55 try { 67 try {
@@ -67,7 +79,6 @@ class ProjectImport extends Command @@ -67,7 +79,6 @@ class ProjectImport extends Command
67 79
68 $total_count = 0; //总条数 80 $total_count = 0; //总条数
69 $success_count = 0; //成功导入条数 81 $success_count = 0; //成功导入条数
70 - setlocale(LC_ALL,'zh_CN');  
71 if (count($line_of_text) > 1) { 82 if (count($line_of_text) > 1) {
72 $task->status = ImportTask::STATUS_ING;//导入中 83 $task->status = ImportTask::STATUS_ING;//导入中
73 $task->save(); 84 $task->save();
@@ -78,8 +89,10 @@ class ProjectImport extends Command @@ -78,8 +89,10 @@ class ProjectImport extends Command
78 foreach ($line_of_text as $k => $v) { 89 foreach ($line_of_text as $k => $v) {
79 if ($k > 0 && isset($v[0]) && $v[0]) { 90 if ($k > 0 && isset($v[0]) && $v[0]) {
80 91
81 - foreach ($v as $kk=>$vv){  
82 - $v[$kk] = mb_convert_encoding($vv, 'utf-8', 'gbk'); 92 + if ($is_gbk) {
  93 + foreach ($v as $kk => $vv) {
  94 + $v[$kk] = mb_convert_encoding($vv, 'utf-8', 'gbk');
  95 + }
83 } 96 }
84 97
85 $total_count += 1; 98 $total_count += 1;
@@ -116,4 +129,18 @@ class ProjectImport extends Command @@ -116,4 +129,18 @@ class ProjectImport extends Command
116 129
117 sleep(2); 130 sleep(2);
118 } 131 }
  132 +
  133 + //判断编码格式
  134 + function get_code_type($file)
  135 + {
  136 + $list = array('GBK', 'UTF-8');
  137 + $str = file_get_contents($file);
  138 + foreach ($list as $item) {
  139 + $tmp = mb_convert_encoding($str, $item, $item);
  140 + if (md5($tmp) == md5($str)) {
  141 + return $item;
  142 + }
  143 + }
  144 + return false;
  145 + }
119 } 146 }
@@ -419,6 +419,19 @@ class ProductLogic extends BaseLogic @@ -419,6 +419,19 @@ class ProductLogic extends BaseLogic
419 } 419 }
420 } 420 }
421 421
  422 + //处理内容中的图片
  423 + $content = '';
  424 + if($data[6]){
  425 + $pattern = '<img src="(.*?)">';
  426 + preg_match_all($pattern, $data[6], $result);
  427 + if($result[1]){
  428 + foreach ($result[1] as $vc_img){
  429 + $data[6] = str_replace($vc_img,CosService::uploadRemote($project_id,'image_product',$vc_img),$data[6]);
  430 + }
  431 + }
  432 + $content = $data[6];
  433 + }
  434 +
422 435
423 //处理seo 436 //处理seo
424 $seo_mate = [ 437 $seo_mate = [
@@ -439,7 +452,7 @@ class ProductLogic extends BaseLogic @@ -439,7 +452,7 @@ class ProductLogic extends BaseLogic
439 'category_id' => $category_id, 452 'category_id' => $category_id,
440 'keyword_id' => $keyword_id, 453 'keyword_id' => $keyword_id,
441 'intro' => $data[5] ?? '', 454 'intro' => $data[5] ?? '',
442 - 'content' => $data[6] ?? '', 455 + 'content' => $content,
443 'seo_mate' => Arr::a2s($seo_mate), 456 'seo_mate' => Arr::a2s($seo_mate),
444 'created_uid' => $user_id, 457 'created_uid' => $user_id,
445 'status' => Product::STATUS_ON 458 'status' => Product::STATUS_ON
@@ -74,7 +74,6 @@ class CosService @@ -74,7 +74,6 @@ class CosService
74 */ 74 */
75 public static function uploadRemote($project_id,$image_type,$file_url) 75 public static function uploadRemote($project_id,$image_type,$file_url)
76 { 76 {
77 - return '';  
78 $ext = explode('.',$file_url); 77 $ext = explode('.',$file_url);
79 78
80 $filename = uniqid().rand(10000,99999).'.'.end($ext); 79 $filename = uniqid().rand(10000,99999).'.'.end($ext);