Commit 00e6f2a5 by fengshuonan

增加db删除的判断

parent 32c257e2
......@@ -19,6 +19,9 @@ public class DataSourceInitException extends ServiceException {
DATA_SOURCE_READ_ERROR(500, "获取主数据源异常"),
INIT_DATA_SOURCE_ERROR(500, "初始化数据源异常"),
DELETE_TENANT_ERROR(500, "不能删除租户数据源"),
REPEAT_ERROR(500, "数据源已存在,请更换名称!"),
NAME_REPEAT_ERROR(500, "当前上下文中已存在该名称,请重启项目或更换名称!"),
QUERY_DATASOURCE_INFO_ERROR(500, "查询数据库中数据源信息错误");
ExEnum(int code, String message) {
......
......@@ -3,15 +3,18 @@ package cn.stylefeng.guns.dbcontainer.modular.service.impl;
import cn.stylefeng.guns.base.pojo.page.LayuiPageFactory;
import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.dbcontainer.core.context.SqlSessionFactoryContext;
import cn.stylefeng.guns.dbcontainer.core.exception.DataSourceInitException;
import cn.stylefeng.guns.dbcontainer.modular.entity.DatabaseInfo;
import cn.stylefeng.guns.dbcontainer.modular.mapper.DatabaseInfoMapper;
import cn.stylefeng.guns.dbcontainer.modular.model.params.DatabaseInfoParam;
import cn.stylefeng.guns.dbcontainer.modular.model.result.DatabaseInfoResult;
import cn.stylefeng.guns.dbcontainer.modular.service.DatabaseInfoService;
import cn.stylefeng.roses.core.util.ToolUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -33,10 +36,23 @@ public class DatabaseInfoServiceImpl extends ServiceImpl<DatabaseInfoMapper, Dat
@Transactional(rollbackFor = Exception.class)
public void add(DatabaseInfoParam param) {
//判断dbName是否重复
String dbName = param.getDbName();
List<DatabaseInfo> db_name = this.list(new QueryWrapper<DatabaseInfo>().eq("db_name", dbName));
if (db_name.size() > 0) {
throw new DataSourceInitException(DataSourceInitException.ExEnum.REPEAT_ERROR);
}
//数据库中插入记录
DatabaseInfo entity = getEntity(param);
this.save(entity);
//先判断context中是否有了这个数据源名称
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryContext.getSqlSessionFactorys().get(param.getDbName());
if (sqlSessionFactory != null) {
throw new DataSourceInitException(DataSourceInitException.ExEnum.NAME_REPEAT_ERROR);
}
//往上下文中添加数据源
SqlSessionFactoryContext.addSqlSessionFactory(param.getDbName(), entity);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment