feat: 支持过滤组件 '空数据' 逻辑

This commit is contained in:
junjun 2024-03-12 17:27:35 +08:00
parent 4135072068
commit ebc6f5a1ae
21 changed files with 244 additions and 60 deletions

View File

@ -1429,7 +1429,12 @@ public class DorisQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1448,13 +1453,12 @@ public class DorisQueryProvider extends QueryProvider {
whereValue = String.format(DorisConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
// doris field type test
/*if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) {
whereValue = String.format(DorisConstants.WHERE_NUMBER_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, value.get(0));
}*/
whereValue = String.format(DorisConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1371,7 +1371,12 @@ public class MysqlQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1392,7 +1397,12 @@ public class MysqlQueryProvider extends QueryProvider {
whereValue = String.format(MysqlConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(MysqlConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1096,7 +1096,7 @@ public class CKQueryProvider extends QueryProvider {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
}else {
} else {
if (field.getDeType() == DeTypeConstants.DE_TIME) {
whereValue = String.format(CKConstants.toDateTime, "'" + value + "'");
} else {
@ -1188,7 +1188,7 @@ public class CKQueryProvider extends QueryProvider {
whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'";
}else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
@ -1462,7 +1462,12 @@ public class CKQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1477,7 +1482,12 @@ public class CKQueryProvider extends QueryProvider {
whereValue = String.format(CKConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = isCompleteField(value.get(0)) ? value.get(0) : String.format(CKConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = isCompleteField(value.get(0)) ? "" : String.format(CKConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = isCompleteField(value.get(0)) ? value.get(0) : String.format(CKConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
if (!request.getIsTree() && fieldList.get(0).getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "null")) {

View File

@ -1468,7 +1468,11 @@ public class Db2QueryProvider extends QueryProvider {
if (isFloat) {
whereValue = "(" + StringUtils.join(value, ",") + ")";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
@ -1487,7 +1491,12 @@ public class Db2QueryProvider extends QueryProvider {
if (isFloat) {
whereValue = value.get(0);
} else {
whereValue = String.format(Db2Constants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(Db2Constants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(Db2Constants.WHERE_VALUE_VALUE, value.get(0));
}
}
}

View File

@ -1395,7 +1395,12 @@ public class EsQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1410,7 +1415,12 @@ public class EsQueryProvider extends QueryProvider {
whereValue = String.format(EsSqlLConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(EsSqlLConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(EsSqlLConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(EsSqlLConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1041,11 +1041,11 @@ public class HiveQueryProvider extends QueryProvider {
whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'";
}else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
} else {
} else {
whereValue = String.format(HiveConstants.WHERE_VALUE_VALUE, value);
}
SQLObj build = SQLObj.builder()
@ -1352,7 +1352,12 @@ public class HiveQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1367,7 +1372,12 @@ public class HiveQueryProvider extends QueryProvider {
whereValue = String.format(HiveConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(HiveConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(HiveConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(HiveConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1046,11 +1046,11 @@ public class ImpalaQueryProvider extends QueryProvider {
whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'";
}else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
} else {
} 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 {
@ -1371,7 +1371,12 @@ public class ImpalaQueryProvider extends QueryProvider {
if (!request.getIsTree() && (field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT || field.getDeExtractType() == DeTypeConstants.DE_BOOL)) {
whereValue = "(" + StringUtils.join(value, ",") + ")";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
@ -1394,7 +1399,12 @@ public class ImpalaQueryProvider extends QueryProvider {
if (!request.getIsTree() && (field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT || field.getDeExtractType() == DeTypeConstants.DE_BOOL)) {
whereValue = String.format(ImpalaConstants.WHERE_NUMBER_VALUE_VALUE, value.get(0));
} else {
whereValue = String.format(ImpalaConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(ImpalaConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(ImpalaConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
}
list.add(SQLObj.builder()

View File

@ -1227,7 +1227,12 @@ public class MongoQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1243,7 +1248,12 @@ public class MongoQueryProvider extends QueryProvider {
}
} else {
if (!request.getIsTree() && fieldList.get(0).getDeType() == DeTypeConstants.DE_STRING) {
whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value.get(0));
}
} else {
whereValue = value.get(0);
}

View File

@ -1436,7 +1436,12 @@ public class MysqlQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1455,7 +1460,12 @@ public class MysqlQueryProvider extends QueryProvider {
whereValue = String.format(MySQLConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(MySQLConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1541,7 +1541,12 @@ public class OracleQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1558,7 +1563,12 @@ public class OracleQueryProvider extends QueryProvider {
whereValue = String.format(OracleConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1392,7 +1392,12 @@ public class PgQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1407,7 +1412,12 @@ public class PgQueryProvider extends QueryProvider {
whereValue = String.format(PgConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1378,7 +1378,12 @@ public class RedshiftQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1393,7 +1398,12 @@ public class RedshiftQueryProvider extends QueryProvider {
whereValue = String.format(PgConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(PgConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1181,7 +1181,7 @@ public class SqlserverQueryProvider extends QueryProvider {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
}else {
} else {
if (field.getType().equalsIgnoreCase("NVARCHAR")) {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value);
} else {
@ -1270,7 +1270,7 @@ public class SqlserverQueryProvider extends QueryProvider {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
}else {
} else {
if (field.getType().equalsIgnoreCase("NVARCHAR")) {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value);
} else {
@ -1523,7 +1523,12 @@ public class SqlserverQueryProvider extends QueryProvider {
return "N" + "'" + str + "'";
}).collect(Collectors.joining(",")) + ")";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
@ -1543,7 +1548,12 @@ public class SqlserverQueryProvider extends QueryProvider {
if ((request.getDatasetTableField() != null && request.getDatasetTableField().getType().equalsIgnoreCase("NVARCHAR")) || (request.getDatasetTableFieldList() != null && request.getDatasetTableFieldList().stream().map(DatasetTableField::getType).collect(Collectors.toList()).contains("nvarchar"))) {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE_CH, value.get(0));
} else {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(SqlServerSQLConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
}

View File

@ -61,7 +61,6 @@
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
v-show="item.deType === 1"
divided
>
<el-dropdown
placement="right-start"

View File

@ -1320,11 +1320,11 @@ public class DmQueryProvider extends QueryProvider {
whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'";
}else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
} else {
} else {
if (field.getDeType() == 1) {
whereValue = String.format(OracleConstants.TO_DATE, "'" + value + "'", OracleConstants.DEFAULT_DATE_FORMAT);
} else {
@ -1562,7 +1562,12 @@ public class DmQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1581,7 +1586,12 @@ public class DmQueryProvider extends QueryProvider {
whereValue = String.format(OracleConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(OracleConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1270,11 +1270,11 @@ public class KingbaseQueryProvider extends QueryProvider {
whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'";
}else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
} else {
} else {
whereValue = String.format(KingbaseConstants.WHERE_VALUE_VALUE, value);
}
SQLObj build = SQLObj.builder()
@ -1600,7 +1600,12 @@ public class KingbaseQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1615,7 +1620,12 @@ public class KingbaseQueryProvider extends QueryProvider {
whereValue = String.format(KingbaseConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(KingbaseConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(KingbaseConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(KingbaseConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1321,7 +1321,12 @@ public class KylinQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1336,7 +1341,12 @@ public class KylinQueryProvider extends QueryProvider {
whereValue = String.format(KylinConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(KylinConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(KylinConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(KylinConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1120,11 +1120,11 @@ public class MaxcomputeQueryProvider extends QueryProvider {
whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'";
}else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
} else {
} else {
whereValue = String.format(MaxConstants.WHERE_VALUE_VALUE, value);
}
SQLObj build = SQLObj.builder()
@ -1341,7 +1341,12 @@ public class MaxcomputeQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1356,7 +1361,12 @@ public class MaxcomputeQueryProvider extends QueryProvider {
whereValue = String.format(MaxConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(MaxConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(MaxConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(MaxConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1333,7 +1333,12 @@ public class MongobiQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1348,7 +1353,12 @@ public class MongobiQueryProvider extends QueryProvider {
whereValue = String.format(MongoConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -1031,11 +1031,11 @@ public class PrestoQueryProvider extends QueryProvider {
whereValue = "('" + String.join("','", value.split(",")) + "')";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "like")) {
whereValue = "'%" + value + "%'";
}else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
} else if (StringUtils.equalsIgnoreCase(item.getTerm(), "begin_with")) {
whereValue = "'" + value + "%'";
} else if (StringUtils.containsIgnoreCase(item.getTerm(), "end_with")) {
whereValue = "'%" + value + "'";
} else {
} else {
whereValue = String.format(PrestoConstants.WHERE_VALUE_VALUE, value);
}
SQLObj build = SQLObj.builder()
@ -1337,7 +1337,12 @@ public class PrestoQueryProvider extends QueryProvider {
String whereValue = "";
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
// 过滤空数据
if (value.contains(SQLConstants.EMPTY_SIGN)) {
whereValue = "('" + StringUtils.join(value, "','") + "', '')" + " or " + whereName + " is null ";
} else {
whereValue = "('" + StringUtils.join(value, "','") + "')";
}
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "like")) {
String keyword = value.get(0).toUpperCase();
whereValue = "'%" + keyword + "%'";
@ -1354,7 +1359,12 @@ public class PrestoQueryProvider extends QueryProvider {
whereValue = String.format(PrestoConstants.WHERE_BETWEEN, value.get(0), value.get(1));
}
} else {
whereValue = String.format(PrestoConstants.WHERE_VALUE_VALUE, value.get(0));
// 过滤空数据
if (StringUtils.equals(value.get(0), SQLConstants.EMPTY_SIGN)) {
whereValue = String.format(PrestoConstants.WHERE_VALUE_VALUE, "") + " or " + whereName + " is null ";
} else {
whereValue = String.format(PrestoConstants.WHERE_VALUE_VALUE, value.get(0));
}
}
list.add(SQLObj.builder()
.whereField(whereName)

View File

@ -34,4 +34,6 @@ public class SQLConstants {
public static final String ORDER_ALIAS_X_PREFIX = "o_ax_%s";
public static final String ORDER_ALIAS_Y_PREFIX = "o_ay_%s";
public static final String WHERE_ALIAS_PREFIX = "w_a_%s";
}
public static final String EMPTY_SIGN = "_empty_$";
}