From c636847ce6bf20e32d0d46edbfba72fcc2a7a385 Mon Sep 17 00:00:00 2001 From: jay li <221531386@qq.com> Date: Mon, 26 Aug 2024 22:56:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parser/constant/SqlReadConstant.java | 2 +- .../parser/sql/read/AbstractSqlRead.java | 4 +- .../parser/sql/read/impl/ChainRead.java | 8 ++-- .../liteflow/parser/sql/vo/SQLParserVO.java | 37 +++++++++++++------ ...ion-data-source-with-suffix-xml.properties | 5 ++- ...on-data-source-with-suffix2-xml.properties | 5 ++- .../src/test/resources/sql/data.sql | 4 +- .../src/test/resources/sql/schema.sql | 2 +- 8 files changed, 41 insertions(+), 26 deletions(-) diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java index ae2817368..5351be539 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/constant/SqlReadConstant.java @@ -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 {} "; diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java index b41a3957b..1bf6a75da 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/AbstractSqlRead.java @@ -51,8 +51,8 @@ public abstract class AbstractSqlRead implements SqlRead { 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(); diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java index dffe02ee7..bb18c9f9b 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/read/impl/ChainRead.java @@ -56,11 +56,11 @@ public class ChainRead extends AbstractSqlRead { 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); } diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java index 0c2a0f430..32c01ef94 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java @@ -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; } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix-xml.properties b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix-xml.properties index c1cfe009f..3446ccc5f 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix-xml.properties +++ b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix-xml.properties @@ -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",\ diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix2-xml.properties b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix2-xml.properties index 93ef74aa5..914c96a3c 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix2-xml.properties +++ b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-data-source-with-suffix2-xml.properties @@ -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",\ diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql index c4df6d8be..81f380cf7 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql +++ b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql @@ -7,8 +7,8 @@ INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','