作者 刘锟

upload_remote

... ... @@ -2,6 +2,7 @@
namespace App\Console\Commands\Import;
use App\Http\Logic\Bside\Blog\BlogLogic;
use App\Http\Logic\Bside\News\NewsLogic;
use App\Models\Import\ImportTask;
use App\Services\ProjectServer;
... ... @@ -80,6 +81,11 @@ class ProjectImport extends Command
$success_count += 1;
}
}
if ($task->type == ImportTask::TYPE_BLOG) {
if ((new BlogLogic())->importBlog($task->project_id, $task->user_id, $v)) {
$success_count += 1;
}
}
}
}
}
... ...
... ... @@ -289,4 +289,48 @@ class BlogCategoryLogic extends BaseLogic
$this->setRouteDeleteSave($data);
return $this->success();
}
/**
* 新闻导入:分类处理
* @param $project_id
* @param $user_id
* @param $category
* @return string
* @throws \Exception
* @author Akun
* @date 2023/09/20 17:35
*/
public function importBlogCategory($project_id,$user_id,$category){
$return = [];
$cate_arr = explode('/',$category);
$p_cate = $cate_arr[0];
$c_cate = $cate_arr[1];
$p_category = $this->model->read(['name'=>$p_cate,'pid'=>0]);
if(!$p_category){
$p_id = $this->model->addReturnId(['name'=>$p_cate,'project_id'=>$project_id,'operator_id'=>$user_id,'create_id'=>$user_id]);
$route = RouteMap::setRoute($p_cate, RouteMap::SOURCE_NEWS_CATE, $p_id, $project_id);
$this->model->edit(['alias'=>$route],['id'=>$p_id]);
}else{
$p_id = $p_category['id'];
}
$return[] = $p_id;
if($c_cate){
$c_category = $this->model->read(['name'=>$c_cate,'pid'=>$p_id]);
if(!$c_category){
$c_id = $this->model->addReturnId(['name'=>$c_cate,'pid'=>$p_id,'project_id'=>$project_id,'operator_id'=>$user_id,'create_id'=>$user_id]);
$route = RouteMap::setRoute($c_cate, RouteMap::SOURCE_NEWS_CATE, $c_id, $project_id);
$this->model->edit(['alias'=>$route],['id'=>$c_id]);
}else{
$c_id = $c_category['id'];
}
$return[] = $c_id;
}
return ','.implode(',',$return).',';
}
}
... ...
... ... @@ -8,6 +8,7 @@ use App\Http\Logic\Bside\BaseLogic;
use App\Models\Blog\Blog;
use App\Models\Blog\BlogCategory as BlogCategoryModel;
use App\Models\RouteMap\RouteMap;
use App\Services\CosService;
use Illuminate\Support\Facades\DB;
class BlogLogic extends BaseLogic
... ... @@ -257,4 +258,50 @@ class BlogLogic extends BaseLogic
return $this->success();
}
/**
* 博客导入
* @param $project_id
* @param $user_id
* @param $data
* @return bool
* @throws \Exception
* @author Akun
* @date 2023/09/20 17:51
*/
public function importBlog($project_id, $user_id, $data)
{
$category_id = '';
if ($data[2]) {
//处理分类
$blogCategoryLogic = new BlogCategoryLogic();
$category_id = $blogCategoryLogic->importBlogCategory($project_id, $user_id, $data[2]);
}
$news = $this->model->read(['name' => $data[0]]);
if (!$news) {
$id = $this->model->addReturnId(
[
'name' => $data[0],
'category_id' => $category_id,
'text' => $data[4] ?? '',
'remark' => $data[3] ?? '',
'image' => $data['5'] ? CosService::uploadRemote($project_id, 'image_blog', $data[5]) : '',
'seo_title' => $data[6] ?? '',
'seo_keywords' => $data[7] ?? '',
'seo_description' => $data[8] ?? '',
'project_id' => $project_id,
'operator_id' => $user_id,
'create_id' => $user_id,
'status' => Blog::STATUS_ONE
]
);
//更新路由
$route = RouteMap::setRoute($data[1] ?: $data[0], RouteMap::SOURCE_NEWS, $id, $project_id);
$this->edit(['url' => $route], ['id' => $id]);
return true;
}
return false;
}
}
... ...
... ... @@ -290,7 +290,8 @@ class NewsLogic extends BaseLogic
'seo_description' => $data[8] ?? '',
'project_id' => $project_id,
'operator_id' => $user_id,
'create_id' => $user_id
'create_id' => $user_id,
'status' => News::STATUS_ONE
]
);
//更新路由
... ...