提交 d85166d0 编写于 作者: Tyl666's avatar Tyl666

【Liquibase逆向工程】第三版 结构整合

上级 50c9e157
......@@ -3,7 +3,7 @@ package cn.ibizlab.core.extensions.service;
import cn.ibizlab.core.lite.extensions.domain.Setting;
import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.core.lite.extensions.service.LiteCoreService;
import cn.ibizlab.core.lite.service.IDstLiquibaseService;
import cn.ibizlab.core.lite.service.DstLiquibaseService;
import cn.ibizlab.core.lite.service.impl.DstDataSourceServiceImpl;
import cn.ibizlab.util.domain.LiquibaseProp;
import cn.ibizlab.util.errors.BadRequestAlertException;
......@@ -12,7 +12,6 @@ import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
import com.baomidou.dynamic.datasource.creator.DataSourceCreator;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import cn.ibizlab.core.util.config.GenerateLiquibaseChangeLog;
import lombok.extern.slf4j.Slf4j;
import cn.ibizlab.core.lite.domain.DstDataSource;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -45,7 +44,7 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl {
public LiteCoreService liteCoreService;
@Resource
public IDstLiquibaseService dstLiquibaseService;
public DstLiquibaseService dstLiquibaseService;
/**
* [BuildDS:buildDS] 行为扩展
......@@ -145,23 +144,27 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl {
@Override
@Transactional
public DstDataSource initDS(DstDataSource et) {
DstDataSource ds = get(et.getDsId());
DstDataSource dstDataSource = buildDS(et);
if(ObjectUtils.isEmpty(dstDataSource)){
throw new BadRequestAlertException("数据源不存在,请检查是否填写正确","","ibzInit");
}
DstDataSource ds = get(dstDataSource.getDsId());
String datasourceMessage = ds.getDsCfg();
if(ObjectUtils.isEmpty(datasourceMessage)){
throw new BadRequestAlertException("数据源不能为空","","ibzInit");
throw new BadRequestAlertException("数据源不能为空","","ibzInit");
}
Map datasourceMap = parseDatasource(datasourceMessage);
if(ObjectUtils.isEmpty(datasourceMap.get("username"))){
throw new BadRequestAlertException("数据源用户名不能为空","","ibzInit");
throw new BadRequestAlertException("数据源用户名不能为空","","ibzInit");
}
if(ObjectUtils.isEmpty(datasourceMap.get("password"))){
throw new BadRequestAlertException("数据源密码不能为空","","ibzInit");
throw new BadRequestAlertException("数据源密码不能为空","","ibzInit");
}
if(ObjectUtils.isEmpty(datasourceMap.get("url"))){
throw new BadRequestAlertException("数据源地址不能为空","","ibzInit");
throw new BadRequestAlertException("数据源地址不能为空","","ibzInit");
}
if(ObjectUtils.isEmpty(datasourceMap.get("defaultSchema"))){
throw new BadRequestAlertException("数据源默认数据库不能为空","","ibzInit");
throw new BadRequestAlertException("数据源默认数据库不能为空","","ibzInit");
}
LiquibaseProp lp = new LiquibaseProp();
lp.setUsername(datasourceMap.get("username") == null?"":datasourceMap.get("username").toString());
......
package cn.ibizlab.core.util.config;
package cn.ibizlab.core.lite.service;
import cn.hutool.core.util.ObjectUtil;
......@@ -7,6 +7,7 @@ import cn.hutool.json.XML;
import cn.ibizlab.core.lite.domain.MetaField;
import cn.ibizlab.core.lite.extensions.domain.MetaEntityModel;
import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.core.util.config.LiquibaseConfiguration;
import cn.ibizlab.util.domain.LiquibaseProp;
import com.alibaba.fastjson.JSON;
import liquibase.Liquibase;
......@@ -25,9 +26,7 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseDataSource;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import javax.annotation.Resource;
......@@ -41,8 +40,9 @@ import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
@Slf4j
@Configuration
public class GenerateLiquibaseChangeLog{
@Service("DstLiquibaseService")
public class DstLiquibaseService{
private boolean ignoreClasspathPrefix = true;
protected String contexts;
......@@ -81,6 +81,10 @@ public class GenerateLiquibaseChangeLog{
@Resource
public LiquibaseConfiguration liquibaseConfiguration;
public SysModel generateLiquibase(LiquibaseProp liquibaseProp, String name) {
SysModel sysModel = liquibaseGenerateChangeLog(liquibaseProp,name);
return sysModel;
}
@SneakyThrows
public SysModel liquibaseGenerateChangeLog(LiquibaseProp liquibaseProp,String name){
// 根据指定数据源生成对象
......
package cn.ibizlab.core.lite.service;
import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.util.domain.LiquibaseProp;
public interface IDstLiquibaseService {
SysModel generateLiquibase(LiquibaseProp liquibaseProp, String name);
}
package cn.ibizlab.core.lite.service.impl;
import cn.ibizlab.core.lite.domain.DstConfig;
import cn.ibizlab.core.lite.extensions.domain.SysModel;
import cn.ibizlab.core.lite.extensions.service.LiteCoreService;
import cn.ibizlab.core.lite.filter.DstConfigSearchContext;
import cn.ibizlab.core.lite.mapper.DstConfigMapper;
import cn.ibizlab.core.lite.service.IDstConfigService;
import cn.ibizlab.core.lite.service.IDstLiquibaseService;
import cn.ibizlab.core.util.config.GenerateLiquibaseChangeLog;
import cn.ibizlab.util.domain.LiquibaseProp;
import cn.ibizlab.util.helper.CachedBeanCopier;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Slf4j
@Service("DstLiquibaseServiceImpl")
public class DstLiquibaseServiceImpl extends ServiceImpl<DstConfigMapper, DstConfig> implements IDstLiquibaseService {
@Resource
public GenerateLiquibaseChangeLog generateLiquibaseChangeLog;
@Override
public SysModel generateLiquibase(LiquibaseProp liquibaseProp, String name) {
SysModel sysModel = generateLiquibaseChangeLog.liquibaseGenerateChangeLog(liquibaseProp,name);
return sysModel;
}
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册