mirror of
https://gitee.com/dromara/liteFlow.git
synced 2026-06-10 03:07:32 +08:00
修改为支持自定义过滤
This commit is contained in:
@@ -12,7 +12,7 @@ public class SqlReadConstant {
|
||||
|
||||
public static final String SQL_PATTERN = "SELECT * FROM {} WHERE {}=?";
|
||||
|
||||
public static final String SQL_PATTERN_WITH_SUFFIX = "SELECT * FROM {} WHERE {}=? AND {} LIKE ? ";
|
||||
public static final String SQL_PATTERN_WITH_SUFFIX = "SELECT * FROM {} WHERE {}=? AND {} {} ?";
|
||||
|
||||
public static final String SCRIPT_SQL_CHECK_PATTERN = "SELECT 1 FROM {} ";
|
||||
|
||||
|
||||
@@ -51,8 +51,8 @@ public abstract class AbstractSqlRead<T> implements SqlRead<T> {
|
||||
stmt.setFetchSize(SqlReadConstant.FETCH_SIZE_MAX);
|
||||
stmt.setString(1, config.getApplicationName());
|
||||
|
||||
if (sqlCmd.contains(config.getChainSuffixTypeField()) && StrUtil.isNotBlank(config.getChainSuffixType())) {
|
||||
stmt.setString(2, "%" + config.getChainSuffixType());
|
||||
if (sqlCmd.contains(config.getCustomFilterTypeField()) && StrUtil.isNotBlank(config.getCustomFilterType())) {
|
||||
stmt.setString(2, config.getCustomFilterType());
|
||||
}
|
||||
|
||||
rs = stmt.executeQuery();
|
||||
|
||||
@@ -56,11 +56,11 @@ public class ChainRead extends AbstractSqlRead<ChainVO> {
|
||||
public String buildQuerySql() {
|
||||
String chainTableName = super.config.getChainTableName();
|
||||
String chainApplicationNameField = super.config.getChainApplicationNameField();
|
||||
String chainSuffixTypeField = super.config.getChainSuffixTypeField();
|
||||
|
||||
if (StrUtil.isNotBlank(chainSuffixTypeField)) {
|
||||
String chainSuffixTypeField = super.config.getCustomFilterTypeField();
|
||||
String chainSuffixOperator = super.config.getCustomFilterOperator();
|
||||
if (StrUtil.isNotBlank(chainSuffixTypeField) && StrUtil.isNotBlank(chainSuffixOperator)) {
|
||||
return StrUtil.format(SqlReadConstant.SQL_PATTERN_WITH_SUFFIX, chainTableName,
|
||||
chainApplicationNameField, chainSuffixTypeField);
|
||||
chainApplicationNameField, chainSuffixTypeField, chainSuffixOperator);
|
||||
} else {
|
||||
return StrUtil.format(SqlReadConstant.SQL_PATTERN, chainTableName, chainApplicationNameField);
|
||||
}
|
||||
|
||||
@@ -72,14 +72,19 @@ public class SQLParserVO {
|
||||
private String chainEnableField;
|
||||
|
||||
/**
|
||||
* chain 后缀
|
||||
* 自定义过滤值
|
||||
*/
|
||||
private String chainSuffixType;
|
||||
private String customFilterType;
|
||||
|
||||
/**
|
||||
* chain 后缀字段名
|
||||
* 自定义过滤操作符
|
||||
*/
|
||||
private String chainSuffixTypeField = "chain_suffix_type";
|
||||
private String customFilterOperator;
|
||||
|
||||
/**
|
||||
* 自定义过滤字段名
|
||||
*/
|
||||
private String customFilterTypeField = "custom_filter_type";
|
||||
|
||||
/**
|
||||
* 脚本 node 表名
|
||||
@@ -347,19 +352,27 @@ public class SQLParserVO {
|
||||
this.namespaceField = namespaceField;
|
||||
}
|
||||
|
||||
public String getChainSuffixType() {
|
||||
return chainSuffixType;
|
||||
public String getCustomFilterType() {
|
||||
return customFilterType;
|
||||
}
|
||||
|
||||
public void setChainSuffixType(String chainSuffixType) {
|
||||
this.chainSuffixType = chainSuffixType;
|
||||
public void setCustomFilterType(String customFilterType) {
|
||||
this.customFilterType = customFilterType;
|
||||
}
|
||||
|
||||
public String getChainSuffixTypeField() {
|
||||
return chainSuffixTypeField;
|
||||
public String getCustomFilterTypeField() {
|
||||
return customFilterTypeField;
|
||||
}
|
||||
|
||||
public void setChainSuffixTypeField(String chainSuffixTypeField) {
|
||||
this.chainSuffixTypeField = chainSuffixTypeField;
|
||||
public void setCustomFilterTypeField(String customFilterTypeField) {
|
||||
this.customFilterTypeField = customFilterTypeField;
|
||||
}
|
||||
|
||||
public String getCustomFilterOperator() {
|
||||
return customFilterOperator;
|
||||
}
|
||||
|
||||
public void setCustomFilterOperator(String customFilterOperator) {
|
||||
this.customFilterOperator = customFilterOperator;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,9 @@ liteflow.rule-source-ext-data={\
|
||||
"chainTableName":"EL_TABLE",\
|
||||
"chainApplicationNameField":"application_name",\
|
||||
"chainNameField":"chain_name",\
|
||||
"chainSuffixTypeField":"chain_suffix_type",\
|
||||
"chainSuffixType":"biz1",\
|
||||
"customFilterTypeField":"custom_filter_type",\
|
||||
"customFilterOperator":"LIKE",\
|
||||
"customFilterType":"%biz1",\
|
||||
"elDataField":"EL_DATA",\
|
||||
"scriptTableName":"script_node_table",\
|
||||
"scriptApplicationNameField":"application_name",\
|
||||
|
||||
@@ -3,8 +3,9 @@ liteflow.rule-source-ext-data={\
|
||||
"chainTableName":"EL_TABLE",\
|
||||
"chainApplicationNameField":"application_name",\
|
||||
"chainNameField":"chain_name",\
|
||||
"chainSuffixTypeField":"chain_suffix_type",\
|
||||
"chainSuffixType":"biz2",\
|
||||
"customFilterTypeField":"custom_filter_type",\
|
||||
"customFilterOperator":"LIKE",\
|
||||
"customFilterType":"%biz2",\
|
||||
"elDataField":"EL_DATA",\
|
||||
"scriptTableName":"script_node_table",\
|
||||
"scriptApplicationNameField":"application_name",\
|
||||
|
||||
@@ -7,8 +7,8 @@ INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','<chai
|
||||
INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain4','IF(x2, IF(x0, THEN(a, b)));');
|
||||
INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA,ROUTE,NAMESPACE) values ('demo','r_chain1','THEN(a,b,c);','r1','ns');
|
||||
INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA,ROUTE,NAMESPACE) values ('demo','r_chain2','THEN(c,b,a);','OR(r1,r2)','ns');
|
||||
INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA,CHAIN_SUFFIX_TYPE) values ('demo','r_chain1','THEN(a,b,c);','biz1');
|
||||
INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA,CHAIN_SUFFIX_TYPE) values ('demo','r_chain1','THEN(c,b,a);','biz2');
|
||||
INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA,CUSTOM_FILTER_TYPE) values ('demo','r_chain1','THEN(a,b,c);','biz1');
|
||||
INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA,CUSTOM_FILTER_TYPE) values ('demo','r_chain1','THEN(c,b,a);','biz2');
|
||||
|
||||
DELETE FROM SCRIPT_NODE_TABLE;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ create table IF NOT EXISTS `EL_TABLE`
|
||||
`el_data` varchar(1024) NOT NULL,
|
||||
`route` varchar(1024),
|
||||
`namespace` varchar(32),
|
||||
`chain_suffix_type` varchar(32),
|
||||
`CUSTOM_FILTER_TYPE` varchar(32),
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user