作者 lyh

gx

... ... @@ -161,4 +161,20 @@ class NewsCategoryController extends BaseController
$this->response('success');
}
/**
* @remark :复制新闻分类
* @name :copyCategory
* @author :lyh
* @method :post
* @time :2024/5/9 9:14
*/
public function copyCategory(NewsCategoryLogic $newsLogic){
$this->request->validate([
'id'=>'required',
],[
'id.required' => 'id不能为空',
]);
$data = $newsLogic->copyCategory();
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -459,7 +459,7 @@ class BlogLogic extends BaseLogic
foreach ($list as $v){
$data[] = [
'html'=>$v['html'],
'project_id'=>$project_id,
'project_id'=>$v['project_id'],
'source'=>$v['source'],
'source_id'=>$save_id,
'template_id'=>$v['template_id'],
... ...
... ... @@ -9,6 +9,7 @@ use App\Models\News\News as NewsModel;
use App\Models\News\NewsCategory as NewsCategoryModel;
use App\Models\Product\Product;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BTemplate;
use Illuminate\Support\Facades\DB;
class NewsCategoryLogic extends BaseLogic
... ... @@ -268,4 +269,70 @@ class NewsCategoryLogic extends BaseLogic
}
return $this->success();
}
/**
* @remark :复制新闻分类
* @name :copyCategory
* @author :lyh
* @method :post
* @time :2024/5/9 9:16
*/
public function copyCategory(){
$info = $this->model->read(['id'=>$this->param['id']]);
$param = [
'name'=>$info['name']."-copy",
'status'=>0,
'sort'=>$info['sort'],
'pid'=>0,
'remark'=>$info['remark'],
'alias'=>$info['alias'],
'project_id'=>$info['project_id'],
'operator_id'=>$this->user['id'],
'create_id'=>$this->user['id'],
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s'),
];
$save_id = $this->model->insertGetId($param);
$route = RouteMap::setRoute($param['alias'], RouteMap::SOURCE_NEWS_CATE, $save_id, $this->user['project_id']);
$this->model->edit(['alias'=>$route],['id'=>$save_id]);
//同步可视化装修数据
$this->copyTemplate($this->param['id'],$info['project_id'],$save_id);
return $this->success(['id'=>$save_id]);
}
/**
* @remark :同步模版数据
* @name :copyTemplate
* @author :lyh
* @method :post
* @time :2023/7/29 15:53
*/
public function copyTemplate($id,$project_id,$save_id){
$BTemplateModel = new BTemplate();
$list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_NEWS,'is_list'=>BTemplate::IS_LIST,'is_custom'=>BTemplate::IS_NO_CUSTOM,'source_id'=>$id,'project_id'=>$project_id]);
if(!empty($list)){
$data = [];
foreach ($list as $v){
$data[] = [
'html'=>$v['html'],
'project_id'=>$v['project_id'],
'source'=>$v['source'],
'source_id'=>$save_id,
'template_id'=>$v['template_id'],
'section_list_id'=>$v['section_list_id'],
'main_html'=>$v['main_html'],
'main_css'=>$v['main_css'],
'is_list'=>$v['is_list'],
'type'=>$v['type'],
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s'),
];
}
$rs = $BTemplateModel->insert($data);
if($rs === false){
$this->fail('error');
}
}
return $this->success();
}
}
... ...
... ... @@ -503,7 +503,7 @@ class NewsLogic extends BaseLogic
foreach ($list as $v){
$data[] = [
'html'=>$v['html'],
'project_id'=>$project_id,
'project_id'=>$v['project_id'],
'source'=>$v['source'],
'source_id'=>$save_id,
'template_id'=>$v['template_id'],
... ...
... ... @@ -299,23 +299,6 @@ class CategoryLogic extends BaseLogic
if($info === false){
$this->fail('当前数据不存在或者已被删除');
}
$param = $this->setCateParams($info);
$save_id = $this->model->addReturnId($param);
$route = RouteMap::setRoute($param['route'], RouteMap::SOURCE_PRODUCT_CATE, $save_id, $this->user['project_id']);
$this->model->edit(['route'=>$route],['id'=>$route]);
//同步可视化装修数据
$this->copyTemplate($this->param['id'],$info['project_id'],$save_id);
return $this->success();
}
/**
* @remark :组装数据
* @name :setParams
* @author :lyh
* @method :post
* @time :2023/7/29 15:45
*/
public function setCateParams($info){
$param = [
'project_id'=>$info['project_id'],
'title'=>$info['title']."-copy",
... ... @@ -327,7 +310,12 @@ class CategoryLogic extends BaseLogic
'describe'=>$info['describe'],
'describe_image'=>$info['describe_image'],
];
return $param;
$save_id = $this->model->addReturnId($param);
$route = RouteMap::setRoute($param['route'], RouteMap::SOURCE_PRODUCT_CATE, $save_id, $this->user['project_id']);
$this->model->edit(['route'=>$route],['id'=>$route]);
//同步可视化装修数据
$this->copyTemplate($this->param['id'],$info['project_id'],$save_id);
return $this->success();
}
/**
... ... @@ -342,7 +330,7 @@ class CategoryLogic extends BaseLogic
$list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_PRODUCT,'is_list'=>BTemplate::IS_LIST,'is_custom'=>BTemplate::IS_NO_CUSTOM,'source_id'=>$id,'project_id'=>$project_id]);
if(!empty($list)){
$data = [];
foreach ($list as $k => $v){
foreach ($list as $v){
$data[] = $this->setTemplateParams($v,$save_id);
}
$rs = $BTemplateModel->insert($data);
... ... @@ -371,7 +359,6 @@ class CategoryLogic extends BaseLogic
'main_html'=>$v['main_html'],
'main_css'=>$v['main_css'],
'is_list'=>$v['is_list'],
'is_custom'=>$v['is_custom'],
'type'=>$v['type'],
'created_at'=>$v['created_at'],
'updated_at'=>$v['updated_at']
... ...
... ... @@ -449,7 +449,7 @@ class ProductLogic extends BaseLogic
$list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_PRODUCT,'is_list'=>BTemplate::IS_DETAIL,'is_custom'=>BTemplate::IS_NO_CUSTOM,'source_id'=>$id,'project_id'=>$project_id]);
if(!empty($list)){
$data = [];
foreach ($list as $k => $v){
foreach ($list as $v){
$data[] = $this->setTemplateParams($v,$project_id,$save_id);
}
$rs = $BTemplateModel->insert($data);
... ...
... ... @@ -78,6 +78,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/category/edit', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'save'])->name('news_category_edit');
Route::any('/category/del', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'del'])->name('news_category_del');
Route::any('/category/allSort', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'allSort'])->name('news_category_allSort');
Route::any('/category/copyCategory', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'copyCategory'])->name('news_category_copyCategory');
Route::any('/category/status', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'status'])->name('news_category_status');
Route::any('/category/sort', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'sort'])->name('news_category_sort');
Route::any('/category/categoryTopList', [\App\Http\Controllers\Bside\News\NewsCategoryController::class, 'categoryTopList'])->name('news_category_categoryTopList');
... ...