作者 lyh

gx

... ... @@ -177,4 +177,21 @@ class CategoryController extends BaseController
$logic->setAllSort();
$this->response('success');
}
/**
* @remark :复制分类
* @name :copyCategory
* @author :lyh
* @method :post
* @time :2024/5/8 17:49
*/
public function copyCategory(CategoryLogic $logic){
$this->request->validate([
'id'=>['required'],
],[
'id.required' => 'ID不能为空',
]);
$logic->copyCategoryInfo();
$this->response('success');
}
}
... ...
... ... @@ -453,7 +453,7 @@ class BlogLogic extends BaseLogic
*/
public function copyTemplate($id,$project_id,$save_id){
$BTemplateModel = new BTemplate();
$list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_BLOG,'source_id'=>$id,'project_id'=>$project_id]);
$list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_BLOG,'source_id'=>$id,'is_list'=>BTemplate::IS_DETAIL,'is_custom'=>BTemplate::IS_NO_CUSTOM,'project_id'=>$project_id]);
if(!empty($list)){
$data = [];
foreach ($list as $v){
... ... @@ -466,6 +466,7 @@ class BlogLogic extends BaseLogic
'section_list_id'=>$v['section_list_id'],
'main_html'=>$v['main_html'],
'main_css'=>$v['main_css'],
'type'=>$v['type'],
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s'),
];
... ...
... ... @@ -475,6 +475,8 @@ class CustomModuleContentLogic extends BaseLogic
'main_html'=>$v['main_html'],
'main_css'=>$v['main_css'],
'is_custom'=>$v['is_custom'],
'is_list'=>$v['is_list'],
'type'=>$v['type'],
'created_at'=>$v['created_at'],
'updated_at'=>$v['updated_at']
];
... ...
... ... @@ -497,7 +497,7 @@ class NewsLogic extends BaseLogic
*/
public function copyTemplate($id,$project_id,$save_id){
$BTemplateModel = new BTemplate();
$list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_NEWS,'source_id'=>$id,'project_id'=>$project_id]);
$list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_NEWS,'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 $v){
... ... @@ -510,6 +510,7 @@ class NewsLogic extends BaseLogic
'section_list_id'=>$v['section_list_id'],
'main_html'=>$v['main_html'],
'main_css'=>$v['main_css'],
'type'=>$v['type'],
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s'),
];
... ...
... ... @@ -9,6 +9,7 @@ use App\Models\Product\Category;
use App\Models\Product\CategoryRelated;
use App\Models\Product\Product;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BTemplate;
use Illuminate\Support\Facades\DB;
/**
... ... @@ -285,4 +286,96 @@ class CategoryLogic extends BaseLogic
}
return $this->success();
}
/**
* @remark :复制
* @name :copyCategoryInfo
* @author :lyh
* @method :post
* @time :2024/5/8 17:51
*/
public function copyCategoryInfo(){
$info = $this->model->read(['id'=>$this->param['id']]);
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",
'pid'=>0,
'sort'=>$info['sort'],
'image'=>$info['image'],
'route'=>$info['route'],
'keywords'=>$info['keywords'],
'describe'=>$info['describe'],
'describe_image'=>$info['describe_image'],
];
return $param;
}
/**
* @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_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){
$data[] = $this->setTemplateParams($v,$save_id);
}
$rs = $BTemplateModel->insert($data);
if($rs === false){
$this->fail('error');
}
}
return $this->success();
}
/**
* @remark :组装模版数据
* @name :setTemplateParams
* @author :lyh
* @method :post
* @time :2023/7/29 15:54
*/
public function setTemplateParams($v,$save_id){
$param = [
'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'],
'is_custom'=>$v['is_custom'],
'type'=>$v['type'],
'created_at'=>$v['created_at'],
'updated_at'=>$v['updated_at']
];
return $this->success($param);
}
}
... ...
... ... @@ -446,7 +446,7 @@ class ProductLogic extends BaseLogic
*/
public function copyTemplate($id,$project_id,$save_id){
$BTemplateModel = new BTemplate();
$list = $BTemplateModel->list(['source'=>2,'source_id'=>$id,'project_id'=>$project_id]);
$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){
... ... @@ -477,6 +477,9 @@ class ProductLogic extends BaseLogic
'section_list_id'=>$v['section_list_id'],
'main_html'=>$v['main_html'],
'main_css'=>$v['main_css'],
'type'=>$v['type'],
'is_list'=>$v['is_list'],
'is_custom'=>$v['is_custom'],
'created_at'=>$v['created_at'],
'updated_at'=>$v['updated_at']
];
... ...
... ... @@ -159,8 +159,7 @@ class UserLoginLogic
$info['hagro'] = $project['hagro'] ?? '';
$info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
$info['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ?
((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : '');
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
$info['is_customized'] = $project['is_customized'];
$info['is_upload_manage'] = $project['is_upload_manage'];
$info['is_upgrade'] = $project['is_upgrade'];
... ... @@ -261,8 +260,7 @@ class UserLoginLogic
$info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
$info['is_domain'] = empty($project['deploy_optimize']['domain']) ? 0 : 1;
$info['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ?
((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : '');
$info['domain'] = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
$info['is_customized'] = $project['is_customized'];
$info['is_upgrade'] = $project['is_upgrade'];
$info['is_upload_manage'] = $project['is_upload_manage'];
... ...