作者 lyh

gx复制产品

... ... @@ -434,16 +434,49 @@ class ProductLogic extends BaseLogic
public function setCopyProduct(){
$info = $this->model->read(['id'=>$this->param['id']]);
$param = $this->setProductParams($info);
$save_id = $this->model->insertGetId($param);
$route = preg_replace('/-product.*/', '', $param['route']);
$route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT, $save_id, $this->user['project_id']);
$this->model->edit(['route'=>$route],['id'=>$save_id]);
//同步可视化装修数据
$this->copyTemplate($this->param['id'],$info['project_id'],$save_id);
DB::beginTransaction();
try {
$save_id = $this->model->insertGetId($param);
CategoryRelated::saveRelated($save_id, $info['category_id']);
$route = preg_replace('/-product.*/', '', $param['route']);
//同步分类关联表
$route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT, $save_id, $this->user['project_id']);
$this->model->edit(['route'=>$route],['id'=>$save_id]);
//同步可视化装修数据
$this->copyTemplate($this->param['id'],$info['project_id'],$save_id);
//同步扩展字段
$this->copyExtendInfo($info['id'],$save_id);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('复制失败,请联系管理员');
}
return $this->success(['id'=>$save_id]);
}
/**
* @remark :复制项目扩展字段
* @name :copyExtendInfo
* @author :lyh
* @method :post
* @time :2024/7/12 9:23
*/
public function copyExtendInfo($old_id,$new_id){
$extendInfoModel = new ExtendInfo();
$extendList = $extendInfoModel->list(['product_id'=>$old_id]);
if(!empty($extendList)){
foreach ($extendList as $k => $v){
$v['product_id'] = $new_id;
$v['created_at'] = date('Y-m-d H:i:s');
$v['updated_at'] = date('Y-m-d H:i:s');
$extendList[$k] = $v;
}
$extendList->insert($extendList);
}
return $this->success();
}
/**
* @remark :同步模版数据
* @name :copyTemplate
* @author :lyh
... ...