|
@ -1,22 +1,25 @@
|
|
|
package com.yihu.hos.tenant.service;
|
|
|
|
|
|
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
|
|
|
import com.yihu.hos.common.constants.ContextAttributes;
|
|
|
import com.yihu.hos.config.MongoConfig;
|
|
|
import com.yihu.hos.core.encrypt.DES;
|
|
|
import com.yihu.hos.core.log.Logger;
|
|
|
import com.yihu.hos.core.log.LoggerFactory;
|
|
|
import com.yihu.hos.services.ServiceMycatEventService;
|
|
|
import com.yihu.hos.tenant.dao.TenantDao;
|
|
|
import com.yihu.hos.tenant.model.DBInfoModel;
|
|
|
import com.yihu.hos.tenant.model.TenantModel;
|
|
|
import com.yihu.hos.web.framework.constant.MycatConstant;
|
|
|
import com.yihu.hos.web.framework.constant.SqlConstants;
|
|
|
import com.yihu.hos.web.framework.model.Result;
|
|
|
import com.yihu.hos.web.framework.model.bo.ServiceMycat;
|
|
|
import org.json.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.OutputStream;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@ -31,6 +34,7 @@ import java.util.UUID;
|
|
|
public class TenantService {
|
|
|
|
|
|
public static final String BEAN_ID = "TenantService";
|
|
|
static private final Logger logger = LoggerFactory.getLogger(TenantService.class);
|
|
|
|
|
|
@Autowired
|
|
|
private TenantDao tenantDao;
|
|
@ -139,4 +143,45 @@ public class TenantService {
|
|
|
return Result.success("新建成功");
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
public Result createDB(DBHelper targetDb,String targetDbName) throws Exception {
|
|
|
//创建数据库
|
|
|
String createDb = "CREATE DATABASE IF NOT EXISTS "+targetDbName;
|
|
|
targetDb.execute(createDb);
|
|
|
return Result.success("新建成功");
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* //TODO 库复制 (测试,可删除)
|
|
|
* 数据库复制
|
|
|
* @param targetDbName 目标数据库名称
|
|
|
* @param targetDbUri 目标数据库连接信息
|
|
|
* @return
|
|
|
*/
|
|
|
public Result copyBaseTables(String targetDbName,String targetDbUri) throws Exception {
|
|
|
|
|
|
String baseDbUri = "jdbc:mysql://172.19.103.57:3306/base_db?user=root&password=xmjkzl";//源数据库连接
|
|
|
DBHelper originDb = new DBHelper(ContextAttributes.BASE_DB, baseDbUri);
|
|
|
DBHelper targetDb = new DBHelper(targetDbName, targetDbUri);
|
|
|
//创建数据库
|
|
|
createDB(targetDb,targetDbName);
|
|
|
//查询源数据库所有表名
|
|
|
String tablesSql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '"+ ContextAttributes.BASE_DB+"';";
|
|
|
//创建表
|
|
|
List<JSONObject> tableNames = originDb.query(tablesSql);
|
|
|
for (JSONObject jsonObject:tableNames){
|
|
|
try {
|
|
|
String tableName = jsonObject.getString(ContextAttributes.TABLE_NAME);
|
|
|
boolean createTable = targetDb.execute(SqlConstants.CREATE_TABLE + targetDbName+"."+tableName + SqlConstants.LIKE + ContextAttributes.BASE_DB+"."+tableName);
|
|
|
boolean insertData = targetDb.execute(SqlConstants.INSERT_INTO + targetDbName+"."+tableName + SqlConstants.SELECT + "*" + SqlConstants.FROM + ContextAttributes.BASE_DB+"."+tableName);
|
|
|
System.out.println(insertData);
|
|
|
}catch (Exception e){
|
|
|
logger.error("执行异常:"+e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
//新增表数据
|
|
|
return Result.success("新建成功");
|
|
|
}
|
|
|
|
|
|
}
|