提交 f4bafd8a 编写于 作者: sq3536's avatar sq3536

model

上级 829fa6ad
server: server:
port: 8086 port: 8086
ibiz:
filePath: /app/file/
#nacos配置中心
spring:
cloud: cloud:
nacos: nacos:
discovery: discovery:
server-addr: 172.16.100.77:8848 server-addr: 192.168.3.23:8848
datasource:
username: root
password: root
defaultSchema: a_A_5d9d78509
url: jdbc:mysql://192.168.3.23:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&allowMultiQueries=true
redis: redis:
host: 172.16.100.77 host: 192.168.3.23
\ No newline at end of file \ No newline at end of file
...@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; ...@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import cn.ibizlab.core.lite.domain.DstDataSource; import cn.ibizlab.core.lite.domain.DstDataSource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
...@@ -44,7 +45,7 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl { ...@@ -44,7 +45,7 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl {
if(!(StringUtils.isEmpty(dstDataSource.getDsCfg()))) if(!(StringUtils.isEmpty(dstDataSource.getDsCfg())))
{ {
DataSourceProperty dataSourceProperty = new DataSourceProperty(); DataSourceProperty dataSourceProperty = new DataSourceProperty();
DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource; DynamicRoutingDataSource ds = dataSource;
DataSource dataSource = druidDataSourceCreator.createDataSource(dataSourceProperty); DataSource dataSource = druidDataSourceCreator.createDataSource(dataSourceProperty);
List<Setting> settings= JSONArray.parseArray(dstDataSource.getDsCfg(),Setting.class); List<Setting> settings= JSONArray.parseArray(dstDataSource.getDsCfg(),Setting.class);
...@@ -68,16 +69,17 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl { ...@@ -68,16 +69,17 @@ public class DstDataSourceExService extends DstDataSourceServiceImpl {
} }
@Autowired @Autowired
private DataSource dataSource; @Lazy
private DynamicRoutingDataSource dataSource;
@Autowired @Autowired
@Lazy
private DruidDataSourceCreator druidDataSourceCreator; private DruidDataSourceCreator druidDataSourceCreator;
public void initDataSource(String dsName) public void initDataSource(String dsName)
{ {
DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource; if(dataSource.getDataSource(dsName)==null)
if(ds.getDataSource(dsName)==null)
{ {
DstDataSource dstDataSource=this.getOne(Wrappers.<DstDataSource>lambdaQuery().eq(DstDataSource::getDsId,dsName).or().eq(DstDataSource::getDsName,dsName),false); DstDataSource dstDataSource=this.getOne(Wrappers.<DstDataSource>lambdaQuery().eq(DstDataSource::getDsId,dsName).or().eq(DstDataSource::getDsName,dsName),false);
if(dstDataSource!=null) if(dstDataSource!=null)
......
package cn.ibizlab.core.lite.extensions.service; package cn.ibizlab.core.lite.extensions.service;
import cn.ibizlab.core.extensions.service.DstDataSourceExService;
import cn.ibizlab.core.lite.domain.DstDataSource; import cn.ibizlab.core.lite.domain.DstDataSource;
import cn.ibizlab.core.lite.extensions.domain.*; import cn.ibizlab.core.lite.extensions.domain.*;
import cn.ibizlab.core.lite.extensions.filter.DbEntitySearchContext; import cn.ibizlab.core.lite.extensions.filter.DbEntitySearchContext;
...@@ -8,8 +9,11 @@ import cn.ibizlab.core.lite.extensions.model.Property; ...@@ -8,8 +9,11 @@ import cn.ibizlab.core.lite.extensions.model.Property;
import cn.ibizlab.core.lite.extensions.util.LiteStorage; import cn.ibizlab.core.lite.extensions.util.LiteStorage;
import cn.ibizlab.core.extensions.mapper.DbEntityMapper; import cn.ibizlab.core.extensions.mapper.DbEntityMapper;
import cn.ibizlab.core.lite.service.IDstDataSourceService; import cn.ibizlab.core.lite.service.IDstDataSourceService;
import cn.ibizlab.core.lite.service.IMetaModelService;
import cn.ibizlab.util.filter.QueryFilter; import cn.ibizlab.util.filter.QueryFilter;
import com.alibaba.fastjson.JSON;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -34,7 +38,7 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl ...@@ -34,7 +38,7 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl
@Autowired @Autowired
private IDstDataSourceService dstDataSourceService; private DstDataSourceExService dstDataSourceService;
...@@ -62,10 +66,15 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl ...@@ -62,10 +66,15 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl
public List<EntityObj> search(String dsName, String sql, QueryFilter filter) { public List<EntityObj> search(String dsName, String sql, QueryFilter filter) {
try try
{ {
dstDataSourceService.initDataSource(dsName);
DynamicDataSourceContextHolder.push(dsName); DynamicDataSourceContextHolder.push(dsName);
DbEntitySearchContext context=new DbEntitySearchContext(); DbEntitySearchContext context=new DbEntitySearchContext();
context.setFilter(filter); context.setFilter(filter);
return baseMapper.search(sql,context.getSelectCond().apply(filter.getCustSqlSegment())); QueryWrapper qw=context.getSelectCond();
if(!StringUtils.isEmpty(filter.getCustSqlSegment()))
qw.apply(filter.getCustSqlSegment());
return baseMapper.search(sql,qw);
} }
catch(Exception ex) catch(Exception ex)
{ {
...@@ -78,13 +87,15 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl ...@@ -78,13 +87,15 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl
} }
} }
@Autowired
private IMetaModelService metaModelService;
@Autowired @Autowired
private LiteModelService liteModelService; private LiteModelService liteModelService;
public List<ModelObj> getModelObjs(DataModel dataModel,Timestamp lastModify) public List<ModelObj> getModelObjs(String metaModelId,Timestamp lastModify)
{ {
DataModel dataModel= JSON.toJavaObject(JSON.parseObject(metaModelService.get(metaModelId).getConfig()),DataModel.class);
EntityModel entityModel=dataModel.getFactEntityModel(); EntityModel entityModel=dataModel.getFactEntityModel();
FieldModel lastModifyField=entityModel.getLastModifyField(); FieldModel lastModifyField=entityModel.getLastModifyField();
QueryFilter filter=new QueryFilter(); QueryFilter filter=new QueryFilter();
...@@ -94,7 +105,7 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl ...@@ -94,7 +105,7 @@ public class DbEntityService extends ServiceImpl<DbEntityMapper, EntityObj> impl
List<EntityObj> kEntityObjs=this.selectCore(entityModel, filter); List<EntityObj> kEntityObjs=this.selectCore(entityModel, filter);
return new ArrayList<>(); return getModelObjs(dataModel,kEntityObjs);
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册