作者 lyh

gx

@@ -177,4 +177,21 @@ class CategoryController extends BaseController @@ -177,4 +177,21 @@ class CategoryController extends BaseController
177 $logic->setAllSort(); 177 $logic->setAllSort();
178 $this->response('success'); 178 $this->response('success');
179 } 179 }
  180 +
  181 + /**
  182 + * @remark :复制分类
  183 + * @name :copyCategory
  184 + * @author :lyh
  185 + * @method :post
  186 + * @time :2024/5/8 17:49
  187 + */
  188 + public function copyCategory(CategoryLogic $logic){
  189 + $this->request->validate([
  190 + 'id'=>['required'],
  191 + ],[
  192 + 'id.required' => 'ID不能为空',
  193 + ]);
  194 + $logic->copyCategoryInfo();
  195 + $this->response('success');
  196 + }
180 } 197 }
@@ -453,7 +453,7 @@ class BlogLogic extends BaseLogic @@ -453,7 +453,7 @@ class BlogLogic extends BaseLogic
453 */ 453 */
454 public function copyTemplate($id,$project_id,$save_id){ 454 public function copyTemplate($id,$project_id,$save_id){
455 $BTemplateModel = new BTemplate(); 455 $BTemplateModel = new BTemplate();
456 - $list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_BLOG,'source_id'=>$id,'project_id'=>$project_id]); 456 + $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]);
457 if(!empty($list)){ 457 if(!empty($list)){
458 $data = []; 458 $data = [];
459 foreach ($list as $v){ 459 foreach ($list as $v){
@@ -466,6 +466,7 @@ class BlogLogic extends BaseLogic @@ -466,6 +466,7 @@ class BlogLogic extends BaseLogic
466 'section_list_id'=>$v['section_list_id'], 466 'section_list_id'=>$v['section_list_id'],
467 'main_html'=>$v['main_html'], 467 'main_html'=>$v['main_html'],
468 'main_css'=>$v['main_css'], 468 'main_css'=>$v['main_css'],
  469 + 'type'=>$v['type'],
469 'created_at'=>date('Y-m-d H:i:s'), 470 'created_at'=>date('Y-m-d H:i:s'),
470 'updated_at'=>date('Y-m-d H:i:s'), 471 'updated_at'=>date('Y-m-d H:i:s'),
471 ]; 472 ];
@@ -475,6 +475,8 @@ class CustomModuleContentLogic extends BaseLogic @@ -475,6 +475,8 @@ class CustomModuleContentLogic extends BaseLogic
475 'main_html'=>$v['main_html'], 475 'main_html'=>$v['main_html'],
476 'main_css'=>$v['main_css'], 476 'main_css'=>$v['main_css'],
477 'is_custom'=>$v['is_custom'], 477 'is_custom'=>$v['is_custom'],
  478 + 'is_list'=>$v['is_list'],
  479 + 'type'=>$v['type'],
478 'created_at'=>$v['created_at'], 480 'created_at'=>$v['created_at'],
479 'updated_at'=>$v['updated_at'] 481 'updated_at'=>$v['updated_at']
480 ]; 482 ];
@@ -497,7 +497,7 @@ class NewsLogic extends BaseLogic @@ -497,7 +497,7 @@ class NewsLogic extends BaseLogic
497 */ 497 */
498 public function copyTemplate($id,$project_id,$save_id){ 498 public function copyTemplate($id,$project_id,$save_id){
499 $BTemplateModel = new BTemplate(); 499 $BTemplateModel = new BTemplate();
500 - $list = $BTemplateModel->list(['source'=>BTemplate::SOURCE_NEWS,'source_id'=>$id,'project_id'=>$project_id]); 500 + $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]);
501 if(!empty($list)){ 501 if(!empty($list)){
502 $data = []; 502 $data = [];
503 foreach ($list as $v){ 503 foreach ($list as $v){
@@ -510,6 +510,7 @@ class NewsLogic extends BaseLogic @@ -510,6 +510,7 @@ class NewsLogic extends BaseLogic
510 'section_list_id'=>$v['section_list_id'], 510 'section_list_id'=>$v['section_list_id'],
511 'main_html'=>$v['main_html'], 511 'main_html'=>$v['main_html'],
512 'main_css'=>$v['main_css'], 512 'main_css'=>$v['main_css'],
  513 + 'type'=>$v['type'],
513 'created_at'=>date('Y-m-d H:i:s'), 514 'created_at'=>date('Y-m-d H:i:s'),
514 'updated_at'=>date('Y-m-d H:i:s'), 515 'updated_at'=>date('Y-m-d H:i:s'),
515 ]; 516 ];
@@ -9,6 +9,7 @@ use App\Models\Product\Category; @@ -9,6 +9,7 @@ use App\Models\Product\Category;
9 use App\Models\Product\CategoryRelated; 9 use App\Models\Product\CategoryRelated;
10 use App\Models\Product\Product; 10 use App\Models\Product\Product;
11 use App\Models\RouteMap\RouteMap; 11 use App\Models\RouteMap\RouteMap;
  12 +use App\Models\Template\BTemplate;
12 use Illuminate\Support\Facades\DB; 13 use Illuminate\Support\Facades\DB;
13 14
14 /** 15 /**
@@ -285,4 +286,96 @@ class CategoryLogic extends BaseLogic @@ -285,4 +286,96 @@ class CategoryLogic extends BaseLogic
285 } 286 }
286 return $this->success(); 287 return $this->success();
287 } 288 }
  289 +
  290 + /**
  291 + * @remark :复制
  292 + * @name :copyCategoryInfo
  293 + * @author :lyh
  294 + * @method :post
  295 + * @time :2024/5/8 17:51
  296 + */
  297 + public function copyCategoryInfo(){
  298 + $info = $this->model->read(['id'=>$this->param['id']]);
  299 + if($info === false){
  300 + $this->fail('当前数据不存在或者已被删除');
  301 + }
  302 + $param = $this->setCateParams($info);
  303 + $save_id = $this->model->addReturnId($param);
  304 + $route = RouteMap::setRoute($param['route'], RouteMap::SOURCE_PRODUCT_CATE, $save_id, $this->user['project_id']);
  305 + $this->model->edit(['route'=>$route],['id'=>$route]);
  306 + //同步可视化装修数据
  307 + $this->copyTemplate($this->param['id'],$info['project_id'],$save_id);
  308 + return $this->success();
  309 + }
  310 +
  311 + /**
  312 + * @remark :组装数据
  313 + * @name :setParams
  314 + * @author :lyh
  315 + * @method :post
  316 + * @time :2023/7/29 15:45
  317 + */
  318 + public function setCateParams($info){
  319 + $param = [
  320 + 'project_id'=>$info['project_id'],
  321 + 'title'=>$info['title']."-copy",
  322 + 'pid'=>0,
  323 + 'sort'=>$info['sort'],
  324 + 'image'=>$info['image'],
  325 + 'route'=>$info['route'],
  326 + 'keywords'=>$info['keywords'],
  327 + 'describe'=>$info['describe'],
  328 + 'describe_image'=>$info['describe_image'],
  329 + ];
  330 + return $param;
  331 + }
  332 +
  333 + /**
  334 + * @remark :同步模版数据
  335 + * @name :copyTemplate
  336 + * @author :lyh
  337 + * @method :post
  338 + * @time :2023/7/29 15:53
  339 + */
  340 + public function copyTemplate($id,$project_id,$save_id){
  341 + $BTemplateModel = new BTemplate();
  342 + $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]);
  343 + if(!empty($list)){
  344 + $data = [];
  345 + foreach ($list as $k => $v){
  346 + $data[] = $this->setTemplateParams($v,$save_id);
  347 + }
  348 + $rs = $BTemplateModel->insert($data);
  349 + if($rs === false){
  350 + $this->fail('error');
  351 + }
  352 + }
  353 + return $this->success();
  354 + }
  355 +
  356 + /**
  357 + * @remark :组装模版数据
  358 + * @name :setTemplateParams
  359 + * @author :lyh
  360 + * @method :post
  361 + * @time :2023/7/29 15:54
  362 + */
  363 + public function setTemplateParams($v,$save_id){
  364 + $param = [
  365 + 'html'=>$v['html'],
  366 + 'project_id'=>$v['project_id'],
  367 + 'source'=>$v['source'],
  368 + 'source_id'=>$save_id,
  369 + 'template_id'=>$v['template_id'],
  370 + 'section_list_id'=>$v['section_list_id'],
  371 + 'main_html'=>$v['main_html'],
  372 + 'main_css'=>$v['main_css'],
  373 + 'is_list'=>$v['is_list'],
  374 + 'is_custom'=>$v['is_custom'],
  375 + 'type'=>$v['type'],
  376 + 'created_at'=>$v['created_at'],
  377 + 'updated_at'=>$v['updated_at']
  378 + ];
  379 + return $this->success($param);
  380 + }
288 } 381 }
@@ -446,7 +446,7 @@ class ProductLogic extends BaseLogic @@ -446,7 +446,7 @@ class ProductLogic extends BaseLogic
446 */ 446 */
447 public function copyTemplate($id,$project_id,$save_id){ 447 public function copyTemplate($id,$project_id,$save_id){
448 $BTemplateModel = new BTemplate(); 448 $BTemplateModel = new BTemplate();
449 - $list = $BTemplateModel->list(['source'=>2,'source_id'=>$id,'project_id'=>$project_id]); 449 + $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]);
450 if(!empty($list)){ 450 if(!empty($list)){
451 $data = []; 451 $data = [];
452 foreach ($list as $k => $v){ 452 foreach ($list as $k => $v){
@@ -477,6 +477,9 @@ class ProductLogic extends BaseLogic @@ -477,6 +477,9 @@ class ProductLogic extends BaseLogic
477 'section_list_id'=>$v['section_list_id'], 477 'section_list_id'=>$v['section_list_id'],
478 'main_html'=>$v['main_html'], 478 'main_html'=>$v['main_html'],
479 'main_css'=>$v['main_css'], 479 'main_css'=>$v['main_css'],
  480 + 'type'=>$v['type'],
  481 + 'is_list'=>$v['is_list'],
  482 + 'is_custom'=>$v['is_custom'],
480 'created_at'=>$v['created_at'], 483 'created_at'=>$v['created_at'],
481 'updated_at'=>$v['updated_at'] 484 'updated_at'=>$v['updated_at']
482 ]; 485 ];
@@ -159,8 +159,7 @@ class UserLoginLogic @@ -159,8 +159,7 @@ class UserLoginLogic
159 $info['hagro'] = $project['hagro'] ?? ''; 159 $info['hagro'] = $project['hagro'] ?? '';
160 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; 160 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
161 $info['test_domain'] = $project['deploy_build']['test_domain'] ?? ''; 161 $info['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
162 - $info['domain'] = (!empty($project['deploy_optimize']['domain']) ?  
163 - ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ''); 162 + $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
164 $info['is_customized'] = $project['is_customized']; 163 $info['is_customized'] = $project['is_customized'];
165 $info['is_upload_manage'] = $project['is_upload_manage']; 164 $info['is_upload_manage'] = $project['is_upload_manage'];
166 $info['is_upgrade'] = $project['is_upgrade']; 165 $info['is_upgrade'] = $project['is_upgrade'];
@@ -261,8 +260,7 @@ class UserLoginLogic @@ -261,8 +260,7 @@ class UserLoginLogic
261 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; 260 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
262 $info['is_domain'] = empty($project['deploy_optimize']['domain']) ? 0 : 1; 261 $info['is_domain'] = empty($project['deploy_optimize']['domain']) ? 0 : 1;
263 $info['test_domain'] = $project['deploy_build']['test_domain'] ?? ''; 262 $info['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
264 - $info['domain'] = (!empty($project['deploy_optimize']['domain']) ?  
265 - ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ''); 263 + $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
266 $info['is_customized'] = $project['is_customized']; 264 $info['is_customized'] = $project['is_customized'];
267 $info['is_upgrade'] = $project['is_upgrade']; 265 $info['is_upgrade'] = $project['is_upgrade'];
268 $info['is_upload_manage'] = $project['is_upload_manage']; 266 $info['is_upload_manage'] = $project['is_upload_manage'];