作者 lyh

gx复制产品

@@ -434,16 +434,49 @@ class ProductLogic extends BaseLogic @@ -434,16 +434,49 @@ class ProductLogic extends BaseLogic
434 public function setCopyProduct(){ 434 public function setCopyProduct(){
435 $info = $this->model->read(['id'=>$this->param['id']]); 435 $info = $this->model->read(['id'=>$this->param['id']]);
436 $param = $this->setProductParams($info); 436 $param = $this->setProductParams($info);
437 - $save_id = $this->model->insertGetId($param);  
438 - $route = preg_replace('/-product.*/', '', $param['route']);  
439 - $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT, $save_id, $this->user['project_id']);  
440 - $this->model->edit(['route'=>$route],['id'=>$save_id]);  
441 - //同步可视化装修数据  
442 - $this->copyTemplate($this->param['id'],$info['project_id'],$save_id); 437 + DB::beginTransaction();
  438 + try {
  439 + $save_id = $this->model->insertGetId($param);
  440 + CategoryRelated::saveRelated($save_id, $info['category_id']);
  441 + $route = preg_replace('/-product.*/', '', $param['route']);
  442 + //同步分类关联表
  443 + $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT, $save_id, $this->user['project_id']);
  444 + $this->model->edit(['route'=>$route],['id'=>$save_id]);
  445 + //同步可视化装修数据
  446 + $this->copyTemplate($this->param['id'],$info['project_id'],$save_id);
  447 + //同步扩展字段
  448 + $this->copyExtendInfo($info['id'],$save_id);
  449 + DB::commit();
  450 + }catch (\Exception $e){
  451 + DB::rollBack();
  452 + $this->fail('复制失败,请联系管理员');
  453 + }
443 return $this->success(['id'=>$save_id]); 454 return $this->success(['id'=>$save_id]);
444 } 455 }
445 456
446 /** 457 /**
  458 + * @remark :复制项目扩展字段
  459 + * @name :copyExtendInfo
  460 + * @author :lyh
  461 + * @method :post
  462 + * @time :2024/7/12 9:23
  463 + */
  464 + public function copyExtendInfo($old_id,$new_id){
  465 + $extendInfoModel = new ExtendInfo();
  466 + $extendList = $extendInfoModel->list(['product_id'=>$old_id]);
  467 + if(!empty($extendList)){
  468 + foreach ($extendList as $k => $v){
  469 + $v['product_id'] = $new_id;
  470 + $v['created_at'] = date('Y-m-d H:i:s');
  471 + $v['updated_at'] = date('Y-m-d H:i:s');
  472 + $extendList[$k] = $v;
  473 + }
  474 + $extendList->insert($extendList);
  475 + }
  476 + return $this->success();
  477 + }
  478 +
  479 + /**
447 * @remark :同步模版数据 480 * @remark :同步模版数据
448 * @name :copyTemplate 481 * @name :copyTemplate
449 * @author :lyh 482 * @author :lyh