From 5be69c9643ef3ff668cebb16d315edebb5e759a7 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 20 Feb 2024 16:07:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=95=B0=E6=8D=AE=E6=BA=90):=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E8=A1=8C=E6=9D=83=E9=99=90=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=B7=A6=E5=8F=B3=E6=A8=A1=E7=B3=8A=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/doris/DorisQueryProvider.java | 18 ++++++-- .../engine/mysql/MysqlQueryProvider.java | 18 ++++++-- .../provider/query/ck/CKQueryProvider.java | 20 ++++++--- .../provider/query/db2/Db2QueryProvider.java | 14 +++++- .../provider/query/es/EsQueryProvider.java | 14 +++++- .../query/hive/HiveQueryProvider.java | 16 +++++-- .../query/impala/ImpalaQueryProvider.java | 16 +++++-- .../query/mongodb/MongoQueryProvider.java | 10 +++++ .../query/mysql/MysqlQueryProvider.java | 44 +++++++++---------- .../query/oracle/OracleQueryProvider.java | 14 +++++- .../provider/query/pg/PgQueryProvider.java | 14 +++++- .../query/redshift/RedshiftQueryProvider.java | 14 +++++- .../sqlserver/SqlserverQueryProvider.java | 24 +++++++--- .../datasource/dm/query/DmQueryProvider.java | 20 ++++++--- .../kingbase/query/KingbaseQueryProvider.java | 20 ++++++--- .../kylin/query/KylinQueryProvider.java | 14 +++++- .../dm/query/MaxcomputeQueryProvider.java | 16 +++++-- .../mongo/query/MongobiQueryProvider.java | 14 +++++- .../dm/query/PrestoQueryProvider.java | 16 +++++-- 19 files changed, 260 insertions(+), 76 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index c3afea3508..d5f121e33b 100644 --- a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -1092,10 +1092,14 @@ public class DorisQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, value); } @@ -1167,10 +1171,14 @@ public class DorisQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, value); } @@ -1214,6 +1222,8 @@ public class DorisQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java index 6805237353..9187aca077 100644 --- a/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java @@ -1038,10 +1038,14 @@ public class MysqlQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MysqlConstants.WHERE_VALUE_VALUE, value); } @@ -1113,10 +1117,14 @@ public class MysqlQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MysqlConstants.WHERE_VALUE_VALUE, value); } @@ -1160,6 +1168,8 @@ public class MysqlQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java index fc60502d55..30dde50239 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java @@ -1088,11 +1088,15 @@ public class CKQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + }else { if (field.getDeType() == DeTypeConstants.DE_TIME) { whereValue = String.format(CKConstants.toDateTime, "'" + value + "'"); } else { @@ -1180,10 +1184,14 @@ public class CKQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + }else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType() == DeTypeConstants.DE_TIME) { whereValue = String.format(CKConstants.toDateTime, "'" + value + "'"); @@ -1237,6 +1245,8 @@ public class CKQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java index 6204522966..cb2b660045 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java @@ -1089,10 +1089,14 @@ public class Db2QueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType().equals(DeTypeConstants.DE_TIME)) { whereValue = String.format(Db2Constants.DATE_FORMAT, "'" + value + "'", Db2Constants.DEFAULT_DATE_FORMAT); @@ -1181,10 +1185,14 @@ public class Db2QueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType().equals(DeTypeConstants.DE_TIME)) { whereValue = String.format(Db2Constants.DATE_FORMAT, "'" + value + "'", Db2Constants.DEFAULT_DATE_FORMAT); @@ -1227,6 +1235,8 @@ public class Db2QueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java index fec8ac0107..f0b729baa3 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java @@ -1091,10 +1091,14 @@ public class EsQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(EsSqlLConstants.WHERE_VALUE_VALUE, value); } @@ -1167,10 +1171,14 @@ public class EsQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(EsSqlLConstants.WHERE_VALUE_VALUE, value); } @@ -1207,6 +1215,8 @@ public class EsQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java index 0c2feffc45..162c30707e 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java @@ -1037,11 +1037,15 @@ public class HiveQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + }else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + } else { whereValue = String.format(HiveConstants.WHERE_VALUE_VALUE, value); } SQLObj build = SQLObj.builder() @@ -1112,10 +1116,14 @@ public class HiveQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(HiveConstants.WHERE_VALUE_VALUE, value); } @@ -1152,6 +1160,8 @@ public class HiveQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java index bc821a16cf..58b9672dfe 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java @@ -1042,11 +1042,15 @@ public class ImpalaQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + }else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + } else { if (field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT || field.getDeExtractType() == DeTypeConstants.DE_BOOL) { whereValue = String.format(ImpalaConstants.WHERE_NUMBER_VALUE_VALUE, value); } else { @@ -1121,10 +1125,14 @@ public class ImpalaQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT || field.getDeExtractType() == DeTypeConstants.DE_BOOL) { whereValue = String.format(ImpalaConstants.WHERE_NUMBER_VALUE_VALUE, value); @@ -1165,6 +1173,8 @@ public class ImpalaQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java index 312243c7d9..f2df136acf 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java @@ -993,6 +993,10 @@ public class MongoQueryProvider extends QueryProvider { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType() == DeTypeConstants.DE_STRING) { whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value); @@ -1047,6 +1051,10 @@ public class MongoQueryProvider extends QueryProvider { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType() == DeTypeConstants.DE_STRING) { whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value); @@ -1085,6 +1093,8 @@ public class MongoQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index da112d8703..f324f34460 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -1091,14 +1091,14 @@ public class MysqlQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "begin_with")) { - whereValue = "'%" + value; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { - whereValue = value + "%'"; + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, value); } @@ -1170,14 +1170,14 @@ public class MysqlQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "begin_with")) { - whereValue = "'%" + value; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { - whereValue = value + "%'"; + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, value); } @@ -1301,14 +1301,14 @@ public class MysqlQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "begin_with")) { - whereValue = "'%" + value; + } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "end_with")) { - whereValue = value + "%'"; + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, value); } @@ -1601,14 +1601,14 @@ public class MysqlQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "in")) { whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; - } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "like")) { whereValue = "'%" + f.getValue() + "%'"; - } else if (StringUtils.containsIgnoreCase(f.getTerm(), "begin_with")) { - whereValue = "'%" + f.getValue(); + } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "begin_with")) { + whereValue = "'" + f.getValue() + "%'"; } else if (StringUtils.containsIgnoreCase(f.getTerm(), "end_with")) { - whereValue = f.getValue() + "%'"; + whereValue = "'%" + f.getValue() + "'"; } else { whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, f.getValue()); } @@ -1669,14 +1669,14 @@ public class MysqlQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { + } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "in")) { whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')"; - } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { + } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "like")) { whereValue = "'%" + f.getValue() + "%'"; - } else if (StringUtils.containsIgnoreCase(f.getTerm(), "begin_with")) { - whereValue = "'%" + f.getValue(); + } else if (StringUtils.equalsIgnoreCase(f.getTerm(), "begin_with")) { + whereValue = "'" + f.getValue() + "%'"; } else if (StringUtils.containsIgnoreCase(f.getTerm(), "end_with")) { - whereValue = f.getValue() + "%'"; + whereValue = "'%" + f.getValue() + "'"; } else { whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, f.getValue()); } diff --git a/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java index aa14257f0a..98c5b7309d 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java @@ -1212,10 +1212,14 @@ public class OracleQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType() == 1) { whereValue = String.format(OracleConstants.TO_DATE, "'" + value + "'", StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : OracleConstants.DEFAULT_DATE_FORMAT); @@ -1292,10 +1296,14 @@ public class OracleQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType() == 1) { whereValue = String.format(OracleConstants.TO_DATE, "'" + value + "'", StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : OracleConstants.DEFAULT_DATE_FORMAT); @@ -1338,6 +1346,8 @@ public class OracleQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java index f8ce5c2c92..2ed3b324b6 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java @@ -1077,10 +1077,14 @@ public class PgQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value); } @@ -1152,10 +1156,14 @@ public class PgQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value); } @@ -1194,6 +1202,8 @@ public class PgQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java index 5c0245b434..2e1dfbbce3 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java @@ -1075,10 +1075,14 @@ public class RedshiftQueryProvider extends QueryProvider { whereValue = PgConstants.WHERE_VALUE_NULL; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_null")) { whereTerm = String.format(whereTerm, originName); - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value); } @@ -1146,10 +1150,14 @@ public class RedshiftQueryProvider extends QueryProvider { whereValue = PgConstants.WHERE_VALUE_NULL; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_null")) { whereTerm = String.format(whereTerm, originName); - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value); } @@ -1188,6 +1196,8 @@ public class RedshiftQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/core/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java b/core/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java index a8ef351f45..c01cbef2d1 100644 --- a/core/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java @@ -1167,7 +1167,7 @@ public class SqlserverQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { if (field.getType().equalsIgnoreCase("NVARCHAR")) { whereValue = "(" + Arrays.asList(value.split(",")).stream().map(str -> { return "N" + "'" + str + "'"; @@ -1177,7 +1177,11 @@ public class SqlserverQueryProvider extends QueryProvider { } } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + }else { if (field.getType().equalsIgnoreCase("NVARCHAR")) { whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value); } else { @@ -1252,7 +1256,7 @@ public class SqlserverQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { if (field.getType().equalsIgnoreCase("NVARCHAR")) { whereValue = "(" + Arrays.asList(value.split(",")).stream().map(str -> { return "N" + "'" + str + "'"; @@ -1262,7 +1266,11 @@ public class SqlserverQueryProvider extends QueryProvider { } } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + }else { if (field.getType().equalsIgnoreCase("NVARCHAR")) { whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value); } else { @@ -1304,6 +1312,8 @@ public class SqlserverQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; @@ -1389,7 +1399,7 @@ public class SqlserverQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "in") || StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "not in")) { if (field.getType().equalsIgnoreCase("NVARCHAR")) { whereValue = "(" + Arrays.asList(value.split(",")).stream().map(str -> { return "N" + "'" + str + "'"; @@ -1399,6 +1409,10 @@ public class SqlserverQueryProvider extends QueryProvider { } } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(filterItemDTO.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getType().equalsIgnoreCase("NVARCHAR")) { whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value); diff --git a/extensions/dataease-extensions-datasource/dm/dm-backend/src/main/java/io/dataease/plugins/datasource/dm/query/DmQueryProvider.java b/extensions/dataease-extensions-datasource/dm/dm-backend/src/main/java/io/dataease/plugins/datasource/dm/query/DmQueryProvider.java index 4b86978dfb..644b7357d6 100644 --- a/extensions/dataease-extensions-datasource/dm/dm-backend/src/main/java/io/dataease/plugins/datasource/dm/query/DmQueryProvider.java +++ b/extensions/dataease-extensions-datasource/dm/dm-backend/src/main/java/io/dataease/plugins/datasource/dm/query/DmQueryProvider.java @@ -1227,11 +1227,15 @@ public class DmQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") - || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") + || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { if (field.getDeType() == 1) { whereValue = String.format(OracleConstants.TO_DATE, "'" + value + "'", OracleConstants.DEFAULT_DATE_FORMAT); @@ -1311,12 +1315,16 @@ public class DmQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") - || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") + || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + }else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + } else { if (field.getDeType() == 1) { whereValue = String.format(OracleConstants.TO_DATE, "'" + value + "'", OracleConstants.DEFAULT_DATE_FORMAT); } else { @@ -1359,6 +1367,8 @@ public class DmQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/extensions/dataease-extensions-datasource/kingbase/kingbase-backend/src/main/java/io/dataease/plugins/datasource/kingbase/query/KingbaseQueryProvider.java b/extensions/dataease-extensions-datasource/kingbase/kingbase-backend/src/main/java/io/dataease/plugins/datasource/kingbase/query/KingbaseQueryProvider.java index 292735e89f..99c1221b91 100644 --- a/extensions/dataease-extensions-datasource/kingbase/kingbase-backend/src/main/java/io/dataease/plugins/datasource/kingbase/query/KingbaseQueryProvider.java +++ b/extensions/dataease-extensions-datasource/kingbase/kingbase-backend/src/main/java/io/dataease/plugins/datasource/kingbase/query/KingbaseQueryProvider.java @@ -1265,12 +1265,16 @@ public class KingbaseQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") - || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") + || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + }else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + } else { whereValue = String.format(KingbaseConstants.WHERE_VALUE_VALUE, value); } SQLObj build = SQLObj.builder() @@ -1343,11 +1347,15 @@ public class KingbaseQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") - || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") + || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(KingbaseConstants.WHERE_VALUE_VALUE, value); } @@ -1388,6 +1396,8 @@ public class KingbaseQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/extensions/dataease-extensions-datasource/kylin/kylin-backend/src/main/java/io/dataease/plugins/datasource/kylin/query/KylinQueryProvider.java b/extensions/dataease-extensions-datasource/kylin/kylin-backend/src/main/java/io/dataease/plugins/datasource/kylin/query/KylinQueryProvider.java index ad524c2124..466cfe46a3 100644 --- a/extensions/dataease-extensions-datasource/kylin/kylin-backend/src/main/java/io/dataease/plugins/datasource/kylin/query/KylinQueryProvider.java +++ b/extensions/dataease-extensions-datasource/kylin/kylin-backend/src/main/java/io/dataease/plugins/datasource/kylin/query/KylinQueryProvider.java @@ -1019,10 +1019,14 @@ public class KylinQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(KylinConstants.WHERE_VALUE_VALUE, value); } @@ -1094,10 +1098,14 @@ public class KylinQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(KylinConstants.WHERE_VALUE_VALUE, value); } @@ -1136,6 +1144,8 @@ public class KylinQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/extensions/dataease-extensions-datasource/maxcompute/maxcompute-backend/src/main/java/io/dataease/plugins/datasource/dm/query/MaxcomputeQueryProvider.java b/extensions/dataease-extensions-datasource/maxcompute/maxcompute-backend/src/main/java/io/dataease/plugins/datasource/dm/query/MaxcomputeQueryProvider.java index 0df45dd8e6..90c3e4fdd6 100644 --- a/extensions/dataease-extensions-datasource/maxcompute/maxcompute-backend/src/main/java/io/dataease/plugins/datasource/dm/query/MaxcomputeQueryProvider.java +++ b/extensions/dataease-extensions-datasource/maxcompute/maxcompute-backend/src/main/java/io/dataease/plugins/datasource/dm/query/MaxcomputeQueryProvider.java @@ -1037,10 +1037,14 @@ public class MaxcomputeQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MaxConstants.WHERE_VALUE_VALUE, value); } @@ -1112,11 +1116,15 @@ public class MaxcomputeQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + }else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + } else { whereValue = String.format(MaxConstants.WHERE_VALUE_VALUE, value); } SQLObj build = SQLObj.builder() @@ -1154,6 +1162,8 @@ public class MaxcomputeQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/extensions/dataease-extensions-datasource/mongo/mongo-backend/src/main/java/io/dataease/plugins/datasource/mongo/query/MongobiQueryProvider.java b/extensions/dataease-extensions-datasource/mongo/mongo-backend/src/main/java/io/dataease/plugins/datasource/mongo/query/MongobiQueryProvider.java index 5966b54da8..fc22ffdbf3 100644 --- a/extensions/dataease-extensions-datasource/mongo/mongo-backend/src/main/java/io/dataease/plugins/datasource/mongo/query/MongobiQueryProvider.java +++ b/extensions/dataease-extensions-datasource/mongo/mongo-backend/src/main/java/io/dataease/plugins/datasource/mongo/query/MongobiQueryProvider.java @@ -1032,10 +1032,14 @@ public class MongobiQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value); } @@ -1107,10 +1111,14 @@ public class MongobiQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value); } @@ -1147,6 +1155,8 @@ public class MongobiQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE "; diff --git a/extensions/dataease-extensions-datasource/presto/presto-backend/src/main/java/io/dataease/plugins/datasource/dm/query/PrestoQueryProvider.java b/extensions/dataease-extensions-datasource/presto/presto-backend/src/main/java/io/dataease/plugins/datasource/dm/query/PrestoQueryProvider.java index 931b0791f5..364bdb0ab1 100644 --- a/extensions/dataease-extensions-datasource/presto/presto-backend/src/main/java/io/dataease/plugins/datasource/dm/query/PrestoQueryProvider.java +++ b/extensions/dataease-extensions-datasource/presto/presto-backend/src/main/java/io/dataease/plugins/datasource/dm/query/PrestoQueryProvider.java @@ -1027,11 +1027,15 @@ public class PrestoQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; - } else { + }else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; + } else { whereValue = String.format(PrestoConstants.WHERE_VALUE_VALUE, value); } SQLObj build = SQLObj.builder() @@ -1102,10 +1106,14 @@ public class PrestoQueryProvider extends QueryProvider { whereValue = "''"; } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "not_empty")) { whereValue = "''"; - } else if (StringUtils.containsIgnoreCase(item.getTerm(), "in") || StringUtils.containsIgnoreCase(item.getTerm(), "not in")) { + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "in") || StringUtils.equalsIgnoreCase(item.getTerm(), "not in")) { whereValue = "('" + String.join("','", value.split(",")) + "')"; } else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) { whereValue = "'%" + value + "%'"; + } else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) { + whereValue = "'" + value + "%'"; + } else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) { + whereValue = "'%" + value + "'"; } else { whereValue = String.format(PrestoConstants.WHERE_VALUE_VALUE, value); } @@ -1144,6 +1152,8 @@ public class PrestoQueryProvider extends QueryProvider { case "not in": return " NOT IN "; case "like": + case "begin_with": + case "end_with": return " LIKE "; case "not like": return " NOT LIKE ";