From 5ebba3a5e57039f241e308702cff85d32633bc89 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Mon, 22 May 2023 16:41:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BB=AA=E8=A1=A8=E6=9D=BF):=20=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E6=90=9C=E7=B4=A2=E7=BB=84=E4=BB=B6=E5=BF=BD=E7=95=A5?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/provider/engine/doris/DorisQueryProvider.java | 4 +++- .../io/dataease/provider/engine/mysql/MysqlQueryProvider.java | 4 +++- .../java/io/dataease/provider/query/ck/CKQueryProvider.java | 4 +++- .../java/io/dataease/provider/query/db2/Db2QueryProvider.java | 4 +++- .../java/io/dataease/provider/query/es/EsQueryProvider.java | 4 +++- .../io/dataease/provider/query/hive/HiveQueryProvider.java | 4 +++- .../dataease/provider/query/impala/ImpalaQueryProvider.java | 4 +++- .../dataease/provider/query/mongodb/MongoQueryProvider.java | 4 +++- .../io/dataease/provider/query/mysql/MysqlQueryProvider.java | 4 +++- .../dataease/provider/query/oracle/OracleQueryProvider.java | 4 +++- .../java/io/dataease/provider/query/pg/PgQueryProvider.java | 4 +++- .../provider/query/redshift/RedshiftQueryProvider.java | 4 +++- .../provider/query/sqlserver/SqlserverQueryProvider.java | 4 +++- 13 files changed, 39 insertions(+), 13 deletions(-) diff --git a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index d4b9f6ab49..5c6cc33712 100644 --- a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -1109,7 +1109,9 @@ public class DorisQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == 1) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java index 4c8591d85b..070dc44f76 100644 --- a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java @@ -1096,7 +1096,9 @@ public class MysqlQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == 1) { if (request.getDatasetTableField().getDeExtractType() == 2 diff --git a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java index 733b7fcaea..c9258d88cc 100644 --- a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java @@ -1181,7 +1181,9 @@ public class CKQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == DeTypeConstants.DE_TIME) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java index 80252527f8..4dd687b3de 100644 --- a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java @@ -1169,7 +1169,9 @@ public class Db2QueryProvider extends QueryProvider { whereValue = "('" + StringUtils.join(value, "','") + "')"; } } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == DeTypeConstants.DE_TIME) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java index fd02228338..df01b29c0e 100644 --- a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java @@ -1119,7 +1119,9 @@ public class EsQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == 1) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java index 8ec11f5649..c71832f84a 100644 --- a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java @@ -1075,7 +1075,9 @@ public class HiveQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == DeTypeConstants.DE_TIME) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java index 210ff42c02..1d09645722 100644 --- a/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java @@ -1077,7 +1077,9 @@ public class ImpalaQueryProvider extends QueryProvider { whereValue = "('" + StringUtils.join(value, "','") + "')"; } } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == DeTypeConstants.DE_TIME) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java index 34730987a4..73218b28d8 100644 --- a/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java @@ -979,7 +979,9 @@ public class MongoQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == DeTypeConstants.DE_TIME) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index 6527c5b951..60249dd169 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -1104,7 +1104,9 @@ public class MysqlQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == 1) { if (request.getDatasetTableField().getDeExtractType() == 2 diff --git a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java index 4f97729539..9bc77ab309 100644 --- a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java @@ -1259,7 +1259,9 @@ public class OracleQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == 1) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); diff --git a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java index 4a102bd3d8..b33dbb7190 100644 --- a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java @@ -1127,7 +1127,9 @@ public class PgQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == 1) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java index 52636edbfd..33156e439d 100644 --- a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java @@ -1108,7 +1108,9 @@ public class RedshiftQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == 1) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); diff --git a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java index 8ab6fced1f..c55f1470bb 100644 --- a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java @@ -1131,7 +1131,9 @@ public class SqlserverQueryProvider extends QueryProvider { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereValue = "('" + StringUtils.join(value, "','") + "')"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) { - whereValue = "'%" + value.get(0) + "%'"; + String keyword = value.get(0).toUpperCase(); + whereValue = "'%" + keyword + "%'"; + whereName = "upper(" + whereName + ")"; } else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) { if (request.getDatasetTableField().getDeType() == DeTypeConstants.DE_TIME) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");