作者 刘锟

upload_remote

@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 namespace App\Console\Commands\Import; 3 namespace App\Console\Commands\Import;
4 4
  5 +use App\Http\Logic\Bside\Blog\BlogLogic;
5 use App\Http\Logic\Bside\News\NewsLogic; 6 use App\Http\Logic\Bside\News\NewsLogic;
6 use App\Models\Import\ImportTask; 7 use App\Models\Import\ImportTask;
7 use App\Services\ProjectServer; 8 use App\Services\ProjectServer;
@@ -80,6 +81,11 @@ class ProjectImport extends Command @@ -80,6 +81,11 @@ class ProjectImport extends Command
80 $success_count += 1; 81 $success_count += 1;
81 } 82 }
82 } 83 }
  84 + if ($task->type == ImportTask::TYPE_BLOG) {
  85 + if ((new BlogLogic())->importBlog($task->project_id, $task->user_id, $v)) {
  86 + $success_count += 1;
  87 + }
  88 + }
83 } 89 }
84 } 90 }
85 } 91 }
@@ -289,4 +289,48 @@ class BlogCategoryLogic extends BaseLogic @@ -289,4 +289,48 @@ class BlogCategoryLogic extends BaseLogic
289 $this->setRouteDeleteSave($data); 289 $this->setRouteDeleteSave($data);
290 return $this->success(); 290 return $this->success();
291 } 291 }
  292 +
  293 + /**
  294 + * 新闻导入:分类处理
  295 + * @param $project_id
  296 + * @param $user_id
  297 + * @param $category
  298 + * @return string
  299 + * @throws \Exception
  300 + * @author Akun
  301 + * @date 2023/09/20 17:35
  302 + */
  303 + public function importBlogCategory($project_id,$user_id,$category){
  304 + $return = [];
  305 +
  306 + $cate_arr = explode('/',$category);
  307 + $p_cate = $cate_arr[0];
  308 + $c_cate = $cate_arr[1];
  309 +
  310 + $p_category = $this->model->read(['name'=>$p_cate,'pid'=>0]);
  311 + if(!$p_category){
  312 + $p_id = $this->model->addReturnId(['name'=>$p_cate,'project_id'=>$project_id,'operator_id'=>$user_id,'create_id'=>$user_id]);
  313 +
  314 + $route = RouteMap::setRoute($p_cate, RouteMap::SOURCE_NEWS_CATE, $p_id, $project_id);
  315 + $this->model->edit(['alias'=>$route],['id'=>$p_id]);
  316 + }else{
  317 + $p_id = $p_category['id'];
  318 + }
  319 + $return[] = $p_id;
  320 +
  321 + if($c_cate){
  322 + $c_category = $this->model->read(['name'=>$c_cate,'pid'=>$p_id]);
  323 + if(!$c_category){
  324 + $c_id = $this->model->addReturnId(['name'=>$c_cate,'pid'=>$p_id,'project_id'=>$project_id,'operator_id'=>$user_id,'create_id'=>$user_id]);
  325 +
  326 + $route = RouteMap::setRoute($c_cate, RouteMap::SOURCE_NEWS_CATE, $c_id, $project_id);
  327 + $this->model->edit(['alias'=>$route],['id'=>$c_id]);
  328 + }else{
  329 + $c_id = $c_category['id'];
  330 + }
  331 + $return[] = $c_id;
  332 + }
  333 +
  334 + return ','.implode(',',$return).',';
  335 + }
292 } 336 }
@@ -8,6 +8,7 @@ use App\Http\Logic\Bside\BaseLogic; @@ -8,6 +8,7 @@ use App\Http\Logic\Bside\BaseLogic;
8 use App\Models\Blog\Blog; 8 use App\Models\Blog\Blog;
9 use App\Models\Blog\BlogCategory as BlogCategoryModel; 9 use App\Models\Blog\BlogCategory as BlogCategoryModel;
10 use App\Models\RouteMap\RouteMap; 10 use App\Models\RouteMap\RouteMap;
  11 +use App\Services\CosService;
11 use Illuminate\Support\Facades\DB; 12 use Illuminate\Support\Facades\DB;
12 13
13 class BlogLogic extends BaseLogic 14 class BlogLogic extends BaseLogic
@@ -257,4 +258,50 @@ class BlogLogic extends BaseLogic @@ -257,4 +258,50 @@ class BlogLogic extends BaseLogic
257 return $this->success(); 258 return $this->success();
258 } 259 }
259 260
  261 + /**
  262 + * 博客导入
  263 + * @param $project_id
  264 + * @param $user_id
  265 + * @param $data
  266 + * @return bool
  267 + * @throws \Exception
  268 + * @author Akun
  269 + * @date 2023/09/20 17:51
  270 + */
  271 + public function importBlog($project_id, $user_id, $data)
  272 + {
  273 + $category_id = '';
  274 + if ($data[2]) {
  275 + //处理分类
  276 + $blogCategoryLogic = new BlogCategoryLogic();
  277 + $category_id = $blogCategoryLogic->importBlogCategory($project_id, $user_id, $data[2]);
  278 + }
  279 +
  280 + $news = $this->model->read(['name' => $data[0]]);
  281 + if (!$news) {
  282 + $id = $this->model->addReturnId(
  283 + [
  284 + 'name' => $data[0],
  285 + 'category_id' => $category_id,
  286 + 'text' => $data[4] ?? '',
  287 + 'remark' => $data[3] ?? '',
  288 + 'image' => $data['5'] ? CosService::uploadRemote($project_id, 'image_blog', $data[5]) : '',
  289 + 'seo_title' => $data[6] ?? '',
  290 + 'seo_keywords' => $data[7] ?? '',
  291 + 'seo_description' => $data[8] ?? '',
  292 + 'project_id' => $project_id,
  293 + 'operator_id' => $user_id,
  294 + 'create_id' => $user_id,
  295 + 'status' => Blog::STATUS_ONE
  296 + ]
  297 + );
  298 + //更新路由
  299 + $route = RouteMap::setRoute($data[1] ?: $data[0], RouteMap::SOURCE_NEWS, $id, $project_id);
  300 + $this->edit(['url' => $route], ['id' => $id]);
  301 +
  302 + return true;
  303 + }
  304 +
  305 + return false;
  306 + }
260 } 307 }
@@ -290,7 +290,8 @@ class NewsLogic extends BaseLogic @@ -290,7 +290,8 @@ class NewsLogic extends BaseLogic
290 'seo_description' => $data[8] ?? '', 290 'seo_description' => $data[8] ?? '',
291 'project_id' => $project_id, 291 'project_id' => $project_id,
292 'operator_id' => $user_id, 292 'operator_id' => $user_id,
293 - 'create_id' => $user_id 293 + 'create_id' => $user_id,
  294 + 'status' => News::STATUS_ONE
294 ] 295 ]
295 ); 296 );
296 //更新路由 297 //更新路由