|
...
|
...
|
@@ -4,6 +4,7 @@ namespace App\Http\Logic\Aside; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
use App\Models\Project;
|
|
|
|
use App\Models\ServerConfig;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
...
|
...
|
@@ -26,6 +27,10 @@ class ServerConfigLogic extends BaseLogic |
|
|
|
|
|
|
|
public function save($param)
|
|
|
|
{
|
|
|
|
$project = ProjectServer::useProject($param['project_id']);
|
|
|
|
if(!$project){
|
|
|
|
$this->fail('项目不存在或者已经删');
|
|
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
try {
|
|
|
|
$res = parent::save($param);
|
|
...
|
...
|
@@ -39,12 +44,13 @@ class ServerConfigLogic extends BaseLogic |
|
|
|
|
|
|
|
(new ProjectLogic())->save($data);
|
|
|
|
|
|
|
|
//数据库配置
|
|
|
|
$project = ProjectServer::useProject($param['project_id']);
|
|
|
|
//初始化数据库
|
|
|
|
if ($param['type'] == ServerConfig::TYPE_MYSQL) {
|
|
|
|
//创建数据库
|
|
|
|
ProjectServer::createDatabase($project);
|
|
|
|
//创建表
|
|
|
|
ProjectServer::initTable($project);
|
|
|
|
}
|
|
|
|
|
|
|
|
DB::commit();
|
|
|
|
} catch (\Exception $e) {
|
|
...
|
...
|
@@ -53,4 +59,58 @@ class ServerConfigLogic extends BaseLogic |
|
|
|
}
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 更新指定项目 数据库
|
|
|
|
* @param $param
|
|
|
|
* @return array
|
|
|
|
* @author zbj
|
|
|
|
* @date 2023/4/24
|
|
|
|
*/
|
|
|
|
public function updateTable($param){
|
|
|
|
$project = ProjectServer::useProject($param['project_id']);
|
|
|
|
if(!$project){
|
|
|
|
$this->fail('项目不存在或者已经删');
|
|
|
|
}
|
|
|
|
ProjectServer::useProject($param['project_id']);
|
|
|
|
DB::connection('custom_mysql')->statement($param['sql']);
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 更新本地 数据库
|
|
|
|
* @param $param
|
|
|
|
* @return array
|
|
|
|
* @author zbj
|
|
|
|
* @date 2023/4/24
|
|
|
|
*/
|
|
|
|
public function updateLocalTable($param){
|
|
|
|
DB::statement($param['sql']);
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 更新所有项目 数据库
|
|
|
|
* @param $param
|
|
|
|
* @return array
|
|
|
|
* @author zbj
|
|
|
|
* @date 2023/4/24
|
|
|
|
*/
|
|
|
|
public function updateAllTable($param){
|
|
|
|
$projects = Project::all();
|
|
|
|
foreach ($projects as $project){
|
|
|
|
//DB类是单例模式,不能用哈 切换配置不会生效
|
|
|
|
$conn = new \mysqli(
|
|
|
|
$project->mysqlConfig->host,
|
|
|
|
$project->mysqlConfig->user,
|
|
|
|
$project->mysqlConfig->password,
|
|
|
|
$project->databaseName(),
|
|
|
|
$project->mysqlConfig->port,
|
|
|
|
);
|
|
|
|
|
|
|
|
$conn->query($param['sql']);
|
|
|
|
}
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|