feat:完善规则引擎版本测试

ruoyi_test
sunshine7058 2024-05-14 11:32:17 +08:00
parent f47588e658
commit 7615d0401c
13 changed files with 178 additions and 7 deletions

View File

@ -0,0 +1,16 @@
package com.muyu.data.source.client.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
/**
*
*
* @author CHX
* on 2024/5/9
*/
@ComponentScan
@Import(value = {SourceClientRunner.class})
public class SourceClientConfig {
}

View File

@ -1,12 +1,15 @@
package com.muyu.data.source.client.config;
import com.muyu.common.core.domain.Result;
import com.muyu.data.source.client.jdbcUtils.JDBCConcreteClass;
import com.muyu.data.source.config.DataSourceConfig;
import com.muyu.data.source.domain.DataSource;
import com.muyu.data.source.domain.DatabaseType;
import com.muyu.data.source.remote.RemoteDataSourceService;
import com.muyu.data.source.remote.RemoteDataTypeService;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.List;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
@ -44,10 +47,19 @@ public class SourceClientRunner implements ApplicationRunner {
log.info("查看连接池");
DataSourceConfig.size(key);
Thread.sleep(500);
log.info("取出一个接,查看连接池");
log.info("取出一个接,查看连接池");
Connection connection = DataSourceConfig.getConnection(key);
DataSourceConfig.size(key);
Thread.sleep(500);
JDBCConcreteClass jdbcConcreteClass = new JDBCConcreteClass();
ResultSet resultSet = jdbcConcreteClass.getResultSet(connection, "select * from engine_maintenance");
ResultSetMetaData metaData = resultSet.getMetaData();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
log.info("字段名称:{}",metaData.getColumnClassName(i));
log.info("数据库类型:{}",metaData.getColumnTypeName(i));
log.info("java类型{}",metaData.getColumnClassName(i));
}
log.info("返回一个连接,查看连接池");
DataSourceConfig.returnConn(connection);
DataSourceConfig.size(key);

View File

@ -0,0 +1,17 @@
package com.muyu.data.source.client.jdbcUtils;
import java.sql.Connection;
import java.sql.ResultSet;
/**
* jdbc
*
* @author HuFangMing
* @ClassName: JDBCAbstractClass
* @createTime: 2024/5/13 14:40
*/
public abstract class JDBCAbstractClass {
public abstract ResultSet getResultSet(Connection connection,String sql);
}

View File

@ -0,0 +1,32 @@
package com.muyu.data.source.client.jdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* jdbc
*
* @author HuFangMing
* @ClassName: JDBCConcreteClass
* @createTime: 2024/5/13 14:42
*/
public class JDBCConcreteClass extends JDBCAbstractClass{
@Override
public ResultSet getResultSet(Connection connection, String sql) {
PreparedStatement ps=null;
try {
ps=connection.prepareStatement(sql);
ResultSet resultSet = ps.executeQuery();
return resultSet;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}

View File

@ -18,8 +18,9 @@ import org.springframework.stereotype.Component;
* @createTime: 2024/5/13 15:25
*/
@Component
@Log4j2
@Component
public class DataSourceConfig {
private static HashMap<Long, DruidDataSource> dataSourceMap=new HashMap<>();
@ -63,6 +64,6 @@ public class DataSourceConfig {
DruidDataSource druidDataSource=dataSourceMap.get(key);
int activeCount = druidDataSource.getActiveCount();
int poolingCount = druidDataSource.getPoolingCount();
log.info(key+"连接池正在使用连接"+activeCount+"个,线程池中线程数量"+poolingCount+"个");
log.info(key+"连接池正在使用连接"+activeCount+"个,连接池中连接数量"+poolingCount+"个");
}
}

View File

@ -1,2 +1,2 @@
com.muyu.source.remote.factory.RemoteDataSourceFactory
com.muyu.source.remote.factory.RemoteDataTypeFactory
com.muyu.data.source.remote.factory.RemoteDataSourceFactory
com.muyu.data.source.remote.factory.RemoteDataTypeFactory

View File

@ -4,6 +4,7 @@ import com.muyu.data.source.domain.AssetDataSource;
import com.muyu.data.source.domain.Children;
import com.muyu.data.source.domain.TableData;
import com.muyu.data.source.domain.resp.CountResp;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
@ -202,4 +203,12 @@ public class DataSourceController extends BaseController {
return Result.success(countResp);
}
/**
*
*/
@GetMapping("/getDataModel/{id}")
public Result getDataModel(@PathVariable("id")Long id){
List<HashMap<String, Object>> dataModelMapList= dataSourceService.getDataModel(id);
return Result.success(dataModelMapList);
}
}

View File

@ -5,6 +5,7 @@ import com.muyu.data.source.domain.AssetDataSource;
import com.muyu.data.source.domain.Children;
import com.muyu.data.source.domain.TableData;
import com.muyu.data.source.domain.resp.CountResp;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.source.domain.DataSource;
import com.baomidou.mybatisplus.extension.service.IService;
@ -43,4 +44,6 @@ public interface DataSourceService extends IService<DataSource> {
CountResp getTableDataCount(Long id);
Result updTableData(TableData tableData);
List<HashMap<String, Object>> getDataModel(Long id);
}

View File

@ -479,6 +479,53 @@ public class DataSourceServiceImpl extends ServiceImpl<DataSourceMapper, DataSou
return Result.success(tableDataService.updateById(tableData));
}
@Override
public List<HashMap<String, Object>> getDataModel(Long id) {
List<HashMap<String, Object>> list = new ArrayList<>();
Children children = childrenService.getOne(new LambdaQueryWrapper<>() {{
eq(Children::getId, id);
}});
DataSource dataSource = this.getOne(new LambdaQueryWrapper<>() {{
eq(DataSource::getId, children.getAssetId());
}});
DatabaseType databaseType = databaseTypeService.getOne(new LambdaQueryWrapper<>() {{
eq(DatabaseType::getDatabaseName, dataSource.getDataType());
}});
List<TableData> tableDataList = tableDataService.list(new LambdaQueryWrapper<>() {{
eq(TableData::getChildrenId, id);
}});
String sql="";
String query="";
String url=databaseType.getUrlPre()+dataSource.getHost()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName()+"?"+dataSource.getConnectionParam();
for (TableData tableData : tableDataList) {
query+=tableData.getName()+",";
}
query=query.substring(0,query.length()-1);
if ("mysql".equals(dataSource.getDataType())){
sql="select"+query+"from"+children.getName();
}
try {
Class.forName(databaseType.getDriverManager());
Connection connection=DriverManager.getConnection(url,dataSource.getUser(),dataSource.getPassword());
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData metaData = rs.getMetaData();
while (rs.next()){
HashMap<String, Object> map = new HashMap<>();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
String columnName = metaData.getColumnName(i);
Object value = rs.getObject(i);
map.put(columnName, value);
}
list.add(map);
}
} catch (ClassNotFoundException | SQLException e) {
throw new RuntimeException(e);
}
return list;
}
public static String getJavaType(String driveClass, String jdbcUrl, DataSource dataSource, String tableName,
String columnName) {

View File

@ -1,4 +1,4 @@
package com.muyu.rule.client.config;
package com.muyu.ruleEngine.client.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;

View File

@ -0,0 +1,32 @@
package com.muyu.ruleEngine.client.config;
import com.muyu.common.core.domain.Result;
import com.muyu.ruleEngine.domain.EngineMaintenance;
import com.muyu.ruleEngine.remote.RemoteEngineMaintenanceService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import java.util.List;
/**
*
*
* @author CHX
* on 2024/5/9
*/
@Log4j2
public class RuleEngineClientRunner implements ApplicationRunner {
@Autowired
private RemoteEngineMaintenanceService engineMaintenanceService;
@Override
public void run(ApplicationArguments args) throws Exception {
Result<List<EngineMaintenance>> maintenanceList = engineMaintenanceService.getMaintenanceList();
log.info(maintenanceList);
}
}

View File

@ -1 +1 @@
com.muyu.rule.engine.client.config.RuleEngineClientConfig
com.muyu.ruleEngine.client.config.RuleEngineClientConfig

View File

@ -1,3 +1,5 @@
package com.muyu.ruleEngine.context;
import com.muyu.ruleEngine.engine.scope.scope_engine;
/**