正在显示
1 个修改的文件
包含
71 行增加
和
63 行删除
| @@ -532,70 +532,78 @@ class ProjectLogic extends BaseLogic | @@ -532,70 +532,78 @@ class ProjectLogic extends BaseLogic | ||
| 532 | * @time :2023/11/8 14:23 | 532 | * @time :2023/11/8 14:23 |
| 533 | */ | 533 | */ |
| 534 | public function copyProject(){ | 534 | public function copyProject(){ |
| 535 | - //复制初始项目 | ||
| 536 | - $data = $this->model::where('id', $this->param['project_id'])->first(); | ||
| 537 | - $data = $data->getAttributes(); | ||
| 538 | - $data['type'] = 0; | ||
| 539 | - $data['title'] = $data['title'].'-copy'; | ||
| 540 | - unset($data['id']); | ||
| 541 | - $project_id = $this->model->insertGetId($data); | ||
| 542 | - //复制部署表 | ||
| 543 | - $buildModel = new DeployBuild(); | ||
| 544 | - $buildData = $buildModel::where('project_id', $this->param['project_id'])->first(); | ||
| 545 | - if(!empty($buildData)){ | ||
| 546 | - $buildData = $buildData->getAttributes(); | ||
| 547 | - $buildData['project_id'] = $project_id; | ||
| 548 | - $hashids = new Hashids('test_domain', 5, 'abcdefghjkmnpqrstuvwxyz1234567890'); | ||
| 549 | - $code = $hashids->encode($project_id); | ||
| 550 | - $buildData['test_domain'] = 'https://v6-' . $code . '.globalso.site/'; | ||
| 551 | - unset($buildData['id']); | ||
| 552 | - $buildModel->insert($buildData); | ||
| 553 | - } | ||
| 554 | - //复制优化表 | ||
| 555 | - $optimizeModel = new DeployOptimize(); | ||
| 556 | - $optimizeData = $optimizeModel::where('project_id', $this->param['project_id'])->first(); | ||
| 557 | - if(!empty($optimizeData)){ | ||
| 558 | - $optimizeData = $optimizeData->getAttributes(); | ||
| 559 | - unset($optimizeData['id'],$optimizeData['domain']); | ||
| 560 | - $optimizeData['project_id'] = $project_id; | ||
| 561 | - $optimizeModel->insert($optimizeData); | ||
| 562 | - } | ||
| 563 | - //复制付费表 | ||
| 564 | - $paymentModel = new Payment(); | ||
| 565 | - $paymentData = $paymentModel::where('project_id', $this->param['project_id'])->first(); | ||
| 566 | - if(!empty($paymentData)){ | ||
| 567 | - $paymentData = $paymentData->getAttributes(); | ||
| 568 | - unset($paymentData['id']); | ||
| 569 | - $paymentData['project_id'] = $project_id; | ||
| 570 | - $paymentModel->insert($paymentData); | ||
| 571 | - } | ||
| 572 | - //复制售后表 | ||
| 573 | - $afterModel = new After(); | ||
| 574 | - $afterData = $afterModel::where('project_id', $this->param['project_id'])->first(); | ||
| 575 | - if(!empty($afterData)){ | ||
| 576 | - $afterData = $afterData->getAttributes(); | ||
| 577 | - unset($afterData['id']); | ||
| 578 | - $afterData['project_id'] = $project_id; | ||
| 579 | - $afterModel->insert($afterData); | ||
| 580 | - } | ||
| 581 | - //复制用户 | ||
| 582 | - $userModel = new UserModel(); | ||
| 583 | - $userData = $userModel::where('project_id', $this->param['project_id'])->where('role_id',0)->first(); | ||
| 584 | - if(!empty($userData)){ | ||
| 585 | - $userData = $userData->getAttributes(); | ||
| 586 | - unset($userData['id']); | ||
| 587 | - $userData['project_id'] = $project_id; | ||
| 588 | - $userModel->insert($userData); | ||
| 589 | - } | ||
| 590 | - //复制设置的模版 | ||
| 591 | - $settingTemplateModel = new Setting(); | ||
| 592 | - $settingData = $settingTemplateModel::where('project_id', $this->param['project_id'])->first(); | ||
| 593 | - if(!empty($settingData)){ | ||
| 594 | - $settingData = $settingData->getAttributes(); | ||
| 595 | - unset($settingData['id']); | ||
| 596 | - $settingData['project_id'] = $project_id; | ||
| 597 | - $settingTemplateModel->insert($settingData); | 535 | + DB::beginTransaction(); |
| 536 | + try { | ||
| 537 | + //复制初始项目 | ||
| 538 | + $data = $this->model::where('id', $this->param['project_id'])->first(); | ||
| 539 | + $data = $data->getAttributes(); | ||
| 540 | + $data['type'] = 0; | ||
| 541 | + $data['title'] = $data['title'].'-copy'; | ||
| 542 | + unset($data['id']); | ||
| 543 | + $project_id = $this->model->insertGetId($data); | ||
| 544 | + //复制部署表 | ||
| 545 | + $buildModel = new DeployBuild(); | ||
| 546 | + $buildData = $buildModel::where('project_id', $this->param['project_id'])->first(); | ||
| 547 | + if(!empty($buildData)){ | ||
| 548 | + $buildData = $buildData->getAttributes(); | ||
| 549 | + $buildData['project_id'] = $project_id; | ||
| 550 | + $hashids = new Hashids('test_domain', 5, 'abcdefghjkmnpqrstuvwxyz1234567890'); | ||
| 551 | + $code = $hashids->encode($project_id); | ||
| 552 | + $buildData['test_domain'] = 'https://v6-' . $code . '.globalso.site/'; | ||
| 553 | + unset($buildData['id']); | ||
| 554 | + $buildModel->insert($buildData); | ||
| 555 | + } | ||
| 556 | + //复制优化表 | ||
| 557 | + $optimizeModel = new DeployOptimize(); | ||
| 558 | + $optimizeData = $optimizeModel::where('project_id', $this->param['project_id'])->first(); | ||
| 559 | + if(!empty($optimizeData)){ | ||
| 560 | + $optimizeData = $optimizeData->getAttributes(); | ||
| 561 | + unset($optimizeData['id'],$optimizeData['domain']); | ||
| 562 | + $optimizeData['project_id'] = $project_id; | ||
| 563 | + $optimizeModel->insert($optimizeData); | ||
| 564 | + } | ||
| 565 | + //复制付费表 | ||
| 566 | + $paymentModel = new Payment(); | ||
| 567 | + $paymentData = $paymentModel::where('project_id', $this->param['project_id'])->first(); | ||
| 568 | + if(!empty($paymentData)){ | ||
| 569 | + $paymentData = $paymentData->getAttributes(); | ||
| 570 | + unset($paymentData['id']); | ||
| 571 | + $paymentData['project_id'] = $project_id; | ||
| 572 | + $paymentModel->insert($paymentData); | ||
| 573 | + } | ||
| 574 | + //复制售后表 | ||
| 575 | + $afterModel = new After(); | ||
| 576 | + $afterData = $afterModel::where('project_id', $this->param['project_id'])->first(); | ||
| 577 | + if(!empty($afterData)){ | ||
| 578 | + $afterData = $afterData->getAttributes(); | ||
| 579 | + unset($afterData['id']); | ||
| 580 | + $afterData['project_id'] = $project_id; | ||
| 581 | + $afterModel->insert($afterData); | ||
| 582 | + } | ||
| 583 | + //复制用户 | ||
| 584 | + $userModel = new UserModel(); | ||
| 585 | + $userData = $userModel::where('project_id', $this->param['project_id'])->where('role_id',0)->first(); | ||
| 586 | + if(!empty($userData)){ | ||
| 587 | + $userData = $userData->getAttributes(); | ||
| 588 | + unset($userData['id']); | ||
| 589 | + $userData['project_id'] = $project_id; | ||
| 590 | + $userModel->insert($userData); | ||
| 591 | + } | ||
| 592 | + //复制设置的模版 | ||
| 593 | + $settingTemplateModel = new Setting(); | ||
| 594 | + $settingData = $settingTemplateModel::where('project_id', $this->param['project_id'])->first(); | ||
| 595 | + if(!empty($settingData)){ | ||
| 596 | + $settingData = $settingData->getAttributes(); | ||
| 597 | + unset($settingData['id']); | ||
| 598 | + $settingData['project_id'] = $project_id; | ||
| 599 | + $settingTemplateModel->insert($settingData); | ||
| 600 | + } | ||
| 601 | + DB::commit(); | ||
| 602 | + }catch (\Exception $e){ | ||
| 603 | + DB::rollBack(); | ||
| 604 | + $this->fail('error'); | ||
| 598 | } | 605 | } |
| 606 | + | ||
| 599 | $this->copyMysql($this->param['project_id'],$project_id); | 607 | $this->copyMysql($this->param['project_id'],$project_id); |
| 600 | return $this->success($data); | 608 | return $this->success($data); |
| 601 | } | 609 | } |
-
请 注册 或 登录 后发表评论