forked from github/dataease
feat:过滤条件优化
This commit is contained in:
parent
dadb1f4f4d
commit
aa68de259c
@ -39,10 +39,10 @@ public class CKQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public Integer transFieldType(String field) {
|
||||
if(field.indexOf("ARRAY") > -1){
|
||||
if (field.indexOf("ARRAY") > -1) {
|
||||
field = "ARRAY";
|
||||
}
|
||||
if(field.indexOf("DATETIME64") > -1){
|
||||
if (field.indexOf("DATETIME64") > -1) {
|
||||
field = "DATETIME64";
|
||||
}
|
||||
switch (field) {
|
||||
@ -81,7 +81,7 @@ public class CKQueryProvider extends QueryProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer transFieldSize(String field){
|
||||
public Integer transFieldSize(String field) {
|
||||
Integer type = transFieldType(field);
|
||||
switch (type) {
|
||||
case 0:
|
||||
@ -128,9 +128,9 @@ public class CKQueryProvider extends QueryProvider {
|
||||
// 处理横轴字段
|
||||
if (f.getDeExtractType() == DeTypeConstants.DE_TIME) {
|
||||
if (f.getDeType() == DeTypeConstants.DE_INT || f.getDeType() == DeTypeConstants.DE_FLOAT) {
|
||||
if(f.getType().equalsIgnoreCase("DATE")){
|
||||
if (f.getType().equalsIgnoreCase("DATE")) {
|
||||
fieldName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originField)) + "*1000";
|
||||
}else {
|
||||
} else {
|
||||
fieldName = String.format(CKConstants.toInt32, originField) + "*1000";
|
||||
}
|
||||
} else {
|
||||
@ -725,7 +725,7 @@ public class CKQueryProvider extends QueryProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertTableToSql(String tableName, Datasource ds){
|
||||
public String convertTableToSql(String tableName, Datasource ds) {
|
||||
return "SELECT * FROM " + String.format(CKConstants.KEYWORD_TABLE, tableName);
|
||||
}
|
||||
|
||||
@ -752,9 +752,13 @@ public class CKQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IN ";
|
||||
return " IS NULL ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL AND %s <> ''";
|
||||
return " IS NOT NULL ";
|
||||
case "empty":
|
||||
return " = ";
|
||||
case "not_empty":
|
||||
return " <> ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
@ -800,31 +804,37 @@ public class CKQueryProvider extends QueryProvider {
|
||||
whereName = originName;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
whereValue = CKConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originName);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
whereValue = "'%" + value + "%'";
|
||||
} else {
|
||||
if(field.getDeType() == DeTypeConstants.DE_TIME){
|
||||
if (field.getDeType() == DeTypeConstants.DE_TIME) {
|
||||
whereValue = String.format(CKConstants.toDateTime, "'" + value + "'");
|
||||
}else {
|
||||
} else {
|
||||
whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value);
|
||||
}
|
||||
}
|
||||
if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "null")){
|
||||
if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(whereName)
|
||||
.whereTermAndValue("is null")
|
||||
.build());
|
||||
}else if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")){
|
||||
} else if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(whereName)
|
||||
.whereTermAndValue("is not null")
|
||||
.build());
|
||||
}else {
|
||||
} else {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(whereName)
|
||||
.whereTermAndValue(whereTerm + whereValue)
|
||||
@ -893,17 +903,17 @@ public class CKQueryProvider extends QueryProvider {
|
||||
whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, value.get(0));
|
||||
}
|
||||
|
||||
if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "null")){
|
||||
if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "null")) {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(whereName)
|
||||
.whereTermAndValue("is null")
|
||||
.build());
|
||||
}else if(field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "not_null")){
|
||||
} else if (field.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(request.getOperator(), "not_null")) {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(whereName)
|
||||
.whereTermAndValue("is not null")
|
||||
.build());
|
||||
}else {
|
||||
} else {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(whereName)
|
||||
.whereTermAndValue(whereTerm + whereValue)
|
||||
@ -956,9 +966,9 @@ public class CKQueryProvider extends QueryProvider {
|
||||
String fieldName = "";
|
||||
if (x.getDeExtractType() == DeTypeConstants.DE_TIME) {
|
||||
if (x.getDeType() == DeTypeConstants.DE_INT || x.getDeType() == DeTypeConstants.DE_FLOAT) {
|
||||
if(x.getType().equalsIgnoreCase("DATE")){
|
||||
if (x.getType().equalsIgnoreCase("DATE")) {
|
||||
fieldName = String.format(CKConstants.toInt32, String.format(CKConstants.toDateTime, originField)) + "*1000";
|
||||
}else {
|
||||
} else {
|
||||
fieldName = String.format(CKConstants.toInt32, originField) + "*1000";
|
||||
}
|
||||
} else if (x.getDeType() == DeTypeConstants.DE_TIME) {
|
||||
@ -994,7 +1004,7 @@ public class CKQueryProvider extends QueryProvider {
|
||||
fieldName = String.format(CKConstants.AGG_FIELD, y.getSummary(), originField);
|
||||
} else {
|
||||
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
|
||||
String cast = y.getDeType() == 2? String.format(CKConstants.toInt64, originField) : String.format(CKConstants.toFloat64, originField);
|
||||
String cast = y.getDeType() == 2 ? String.format(CKConstants.toInt64, originField) : String.format(CKConstants.toFloat64, originField);
|
||||
String agg = String.format(CKConstants.AGG_FIELD, y.getSummary(), cast);
|
||||
fieldName = String.format(CKConstants.toDecimal, agg);
|
||||
} else {
|
||||
@ -1016,9 +1026,15 @@ public class CKQueryProvider extends QueryProvider {
|
||||
String whereValue = "";
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = CKConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originField);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -1027,19 +1043,19 @@ public class CKQueryProvider extends QueryProvider {
|
||||
whereValue = String.format(CKConstants.WHERE_VALUE_VALUE, f.getValue());
|
||||
}
|
||||
|
||||
if(y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "null")){
|
||||
if (y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(fieldAlias)
|
||||
.whereAlias(fieldAlias)
|
||||
.whereTermAndValue("is null")
|
||||
.build());
|
||||
}else if(y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")){
|
||||
} else if (y.getDeType() == DeTypeConstants.DE_TIME && StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(fieldAlias)
|
||||
.whereAlias(fieldAlias)
|
||||
.whereTermAndValue("is not null")
|
||||
.build());
|
||||
}else {
|
||||
} else {
|
||||
list.add(SQLObj.builder()
|
||||
.whereField(fieldAlias)
|
||||
.whereAlias(fieldAlias)
|
||||
|
@ -700,7 +700,7 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertTableToSql(String tableName, Datasource ds){
|
||||
public String convertTableToSql(String tableName, Datasource ds) {
|
||||
return createSQLPreview("SELECT * FROM " + String.format(DorisConstants.KEYWORD_TABLE, tableName), null);
|
||||
}
|
||||
|
||||
@ -734,9 +734,13 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IN ";
|
||||
return " IS NULL ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL AND %s <> ''";
|
||||
return " IS NOT NULL ";
|
||||
case "empty":
|
||||
return " = ";
|
||||
case "not_empty":
|
||||
return " <> ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
@ -783,9 +787,15 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
whereName = originName;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
whereValue = DorisConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originName);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
@ -952,9 +962,15 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
whereName = originField;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = DorisConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -1003,9 +1019,15 @@ public class DorisQueryProvider extends QueryProvider {
|
||||
String whereValue = "";
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = DorisConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
|
@ -682,9 +682,13 @@ public class EsQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IN ";
|
||||
return " IS NULL ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL AND %s <> ''";
|
||||
return " IS NOT NULL ";
|
||||
case "empty":
|
||||
return " = ";
|
||||
case "not_empty":
|
||||
return " <> ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
@ -730,9 +734,15 @@ public class EsQueryProvider extends QueryProvider {
|
||||
whereName = originName;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
whereValue = EsSqlLConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originName);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
@ -913,9 +923,15 @@ public class EsQueryProvider extends QueryProvider {
|
||||
String whereValue = "";
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = EsSqlLConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originField);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
|
@ -694,7 +694,7 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertTableToSql(String tableName, Datasource ds){
|
||||
public String convertTableToSql(String tableName, Datasource ds) {
|
||||
return createSQLPreview("SELECT * FROM " + String.format(MySQLConstants.KEYWORD_TABLE, tableName), null);
|
||||
}
|
||||
|
||||
@ -721,9 +721,13 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IN ";
|
||||
return " IS NULL ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL AND %s <> ''";
|
||||
return " IS NOT NULL ";
|
||||
case "empty":
|
||||
return " = ";
|
||||
case "not_empty":
|
||||
return " <> ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
@ -769,9 +773,15 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
whereName = originName;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originName);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
@ -936,9 +946,15 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
whereName = originField;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originField);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -986,9 +1002,15 @@ public class MysqlQueryProvider extends QueryProvider {
|
||||
String whereValue = "";
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originField);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
|
@ -109,10 +109,10 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
return st_sql.render();
|
||||
}
|
||||
|
||||
public void setSchema(SQLObj tableObj, Datasource ds){
|
||||
if(ds != null && !tableObj.getTableName().startsWith("(") && !tableObj.getTableName().endsWith(")")){
|
||||
public void setSchema(SQLObj tableObj, Datasource ds) {
|
||||
if (ds != null && !tableObj.getTableName().startsWith("(") && !tableObj.getTableName().endsWith(")")) {
|
||||
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
|
||||
schema = String.format( OracleConstants.KEYWORD_TABLE, schema);
|
||||
schema = String.format(OracleConstants.KEYWORD_TABLE, schema);
|
||||
tableObj.setTableName(schema + "." + tableObj.getTableName());
|
||||
}
|
||||
}
|
||||
@ -744,9 +744,9 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertTableToSql(String tableName, Datasource ds){
|
||||
public String convertTableToSql(String tableName, Datasource ds) {
|
||||
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
|
||||
schema = String.format( OracleConstants.KEYWORD_TABLE, schema);
|
||||
schema = String.format(OracleConstants.KEYWORD_TABLE, schema);
|
||||
return createSQLPreview("SELECT * FROM " + schema + "." + String.format(OracleConstants.KEYWORD_TABLE, tableName), null);
|
||||
}
|
||||
|
||||
@ -773,9 +773,13 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IN ";
|
||||
return " IS NULL ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL AND %s <> ''";
|
||||
return " IS NOT NULL ";
|
||||
case "empty":
|
||||
return " = ";
|
||||
case "not_empty":
|
||||
return " <> ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
@ -823,9 +827,15 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
whereName = originName;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
whereValue = OracleConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originName);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
@ -1009,9 +1019,15 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
whereName = originField;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = OracleConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
@ -1059,9 +1075,15 @@ public class OracleQueryProvider extends QueryProvider {
|
||||
String whereValue = "";
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = OracleConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
|
@ -750,9 +750,13 @@ public class PgQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IN ";
|
||||
return " IS NULL ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL AND %s <> ''";
|
||||
return " IS NOT NULL ";
|
||||
case "empty":
|
||||
return " = ";
|
||||
case "not_empty":
|
||||
return " <> ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
@ -798,9 +802,15 @@ public class PgQueryProvider extends QueryProvider {
|
||||
whereName = originName;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
whereValue = PgConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originName);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
@ -980,9 +990,15 @@ public class PgQueryProvider extends QueryProvider {
|
||||
String whereValue = "";
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = PgConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
|
@ -149,7 +149,7 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public String createQueryTableWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup, Datasource ds) {
|
||||
Integer size = (page-1)*pageSize + realSize;
|
||||
Integer size = (page - 1) * pageSize + realSize;
|
||||
return String.format("SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP ", size.toString(), createQuerySQL(table, fields, isGroup, ds));
|
||||
|
||||
}
|
||||
@ -162,7 +162,7 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
|
||||
@Override
|
||||
public String createQuerySQLWithPage(String sql, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup) {
|
||||
Integer size = (page-1)*pageSize + realSize;
|
||||
Integer size = (page - 1) * pageSize + realSize;
|
||||
return String.format("SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP ", size.toString(), createQuerySQLAsTmp(sql, fields, isGroup));
|
||||
}
|
||||
|
||||
@ -677,9 +677,9 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertTableToSql(String tableName, Datasource ds){
|
||||
public String convertTableToSql(String tableName, Datasource ds) {
|
||||
String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema();
|
||||
schema = String.format( SqlServerSQLConstants.KEYWORD_TABLE, schema);
|
||||
schema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema);
|
||||
return createSQLPreview("SELECT * FROM " + schema + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, tableName), null);
|
||||
}
|
||||
|
||||
@ -706,9 +706,13 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
case "not like":
|
||||
return " NOT LIKE ";
|
||||
case "null":
|
||||
return " IN ";
|
||||
return " IS NULL ";
|
||||
case "not_null":
|
||||
return " IS NOT NULL AND %s <> ''";
|
||||
return " IS NOT NULL ";
|
||||
case "empty":
|
||||
return " = ";
|
||||
case "not_empty":
|
||||
return " <> ";
|
||||
case "between":
|
||||
return " BETWEEN ";
|
||||
default:
|
||||
@ -748,9 +752,15 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
whereName = originName;
|
||||
}
|
||||
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
|
||||
whereValue = SqlServerSQLConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originName);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(value, "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
|
||||
@ -937,9 +947,15 @@ public class SqlserverQueryProvider extends QueryProvider {
|
||||
String whereValue = "";
|
||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
|
||||
whereValue = SqlServerSQLConstants.WHERE_VALUE_NULL;
|
||||
// whereValue = MySQLConstants.WHERE_VALUE_NULL;
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
|
||||
whereTerm = String.format(whereTerm, originField);
|
||||
// whereTerm = String.format(whereTerm, originName);
|
||||
whereValue = "";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_empty")) {
|
||||
whereValue = "''";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
|
||||
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
|
||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||
|
@ -762,8 +762,10 @@ export default {
|
||||
filter_le: 'Less than or equal to',
|
||||
filter_gt: 'Greater than',
|
||||
filter_ge: 'Greater than or equal to',
|
||||
filter_null: 'Empty',
|
||||
filter_not_null: 'Not Empty',
|
||||
filter_null: 'Null',
|
||||
filter_not_null: 'Not Null',
|
||||
filter_empty: 'Empty String',
|
||||
filter_not_empty: 'Not Empty String',
|
||||
filter_include: 'Contain',
|
||||
filter_not_include: 'Not Contain',
|
||||
rose_type: 'Rose pattern',
|
||||
|
@ -763,8 +763,10 @@ export default {
|
||||
filter_le: '小于等于',
|
||||
filter_gt: '大于',
|
||||
filter_ge: '大于等于',
|
||||
filter_null: '爲空',
|
||||
filter_not_null: '不爲空',
|
||||
filter_null: '為空',
|
||||
filter_not_null: '不為空',
|
||||
filter_empty: '空字符串',
|
||||
filter_not_empty: '非空字符串',
|
||||
filter_include: '包含',
|
||||
filter_not_include: '不包含',
|
||||
rose_type: '玫瑰圖模式',
|
||||
|
@ -765,6 +765,8 @@ export default {
|
||||
filter_ge: '大于等于',
|
||||
filter_null: '为空',
|
||||
filter_not_null: '不为空',
|
||||
filter_empty: '空字符串',
|
||||
filter_not_empty: '非空字符串',
|
||||
filter_include: '包含',
|
||||
filter_not_include: '不包含',
|
||||
rose_type: '玫瑰图模式',
|
||||
|
@ -23,7 +23,7 @@
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
|
||||
<el-input v-show="!f.term.includes('null') && !f.term.includes('empty')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" />
|
||||
@ -44,56 +44,48 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: [{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'eq',
|
||||
label: this.$t('chart.filter_eq')
|
||||
}, {
|
||||
value: 'not_eq',
|
||||
label: this.$t('chart.filter_not_eq')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'like',
|
||||
label: this.$t('chart.filter_like')
|
||||
}, {
|
||||
value: 'not like',
|
||||
label: this.$t('chart.filter_not_like')
|
||||
}]
|
||||
},
|
||||
// {
|
||||
// label: '',
|
||||
// options: [{
|
||||
// value: 'lt',
|
||||
// label: this.$t('chart.filter_lt')
|
||||
// }, {
|
||||
// value: 'gt',
|
||||
// label: this.$t('chart.filter_gt')
|
||||
// }]
|
||||
// },
|
||||
// {
|
||||
// label: '',
|
||||
// options: [{
|
||||
// value: 'le',
|
||||
// label: this.$t('chart.filter_le')
|
||||
// }, {
|
||||
// value: 'ge',
|
||||
// label: this.$t('chart.filter_ge')
|
||||
// }]
|
||||
// },
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'null',
|
||||
label: this.$t('chart.filter_null')
|
||||
}, {
|
||||
value: 'not_null',
|
||||
label: this.$t('chart.filter_not_null')
|
||||
}]
|
||||
}]
|
||||
options: [
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'eq',
|
||||
label: this.$t('chart.filter_eq')
|
||||
}, {
|
||||
value: 'not_eq',
|
||||
label: this.$t('chart.filter_not_eq')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'like',
|
||||
label: this.$t('chart.filter_like')
|
||||
}, {
|
||||
value: 'not like',
|
||||
label: this.$t('chart.filter_not_like')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'null',
|
||||
label: this.$t('chart.filter_null')
|
||||
}, {
|
||||
value: 'not_null',
|
||||
label: this.$t('chart.filter_not_null')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'empty',
|
||||
label: this.$t('chart.filter_empty')
|
||||
}, {
|
||||
value: 'not_empty',
|
||||
label: this.$t('chart.filter_not_empty')
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -113,7 +105,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.filter-item{
|
||||
.filter-item {
|
||||
width: 100%;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #DCDFE6;
|
||||
@ -123,19 +115,22 @@ export default {
|
||||
justify-content: left;
|
||||
align-items: center;
|
||||
}
|
||||
.form-item>>>.el-form-item__label{
|
||||
|
||||
.form-item >>> .el-form-item__label {
|
||||
font-size: 12px;
|
||||
}
|
||||
span{
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.value-item>>>.el-input{
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 80px!important;
|
||||
}
|
||||
.el-select-dropdown__item{
|
||||
span {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.value-item >>> .el-input {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 80px !important;
|
||||
}
|
||||
|
||||
.el-select-dropdown__item {
|
||||
padding: 0 20px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
@ -83,16 +83,6 @@ export default {
|
||||
value: 'ge',
|
||||
label: this.$t('chart.filter_ge')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'null',
|
||||
label: this.$t('chart.filter_null')
|
||||
}, {
|
||||
value: 'not_null',
|
||||
label: this.$t('chart.filter_not_null')
|
||||
}]
|
||||
}]
|
||||
}
|
||||
},
|
||||
|
@ -23,7 +23,7 @@
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-input v-show="!f.term.includes('null')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
|
||||
<el-input v-show="!f.term.includes('null') && !f.term.includes('empty')" v-model="f.value" class="value-item" :placeholder="$t('chart.condition')" size="mini" clearable />
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-button type="text" icon="el-icon-delete" circle style="float: right" @click="removeFilter(index)" />
|
||||
@ -80,6 +80,16 @@ export default {
|
||||
value: 'not_null',
|
||||
label: this.$t('chart.filter_not_null')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'empty',
|
||||
label: this.$t('chart.filter_empty')
|
||||
}, {
|
||||
value: 'not_empty',
|
||||
label: this.$t('chart.filter_not_empty')
|
||||
}]
|
||||
}
|
||||
],
|
||||
dateOptions: [
|
||||
@ -112,16 +122,6 @@ export default {
|
||||
value: 'ge',
|
||||
label: this.$t('chart.filter_ge')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'null',
|
||||
label: this.$t('chart.filter_null')
|
||||
}, {
|
||||
value: 'not_null',
|
||||
label: this.$t('chart.filter_not_null')
|
||||
}]
|
||||
}
|
||||
],
|
||||
valueOptions: [
|
||||
@ -154,16 +154,6 @@ export default {
|
||||
value: 'ge',
|
||||
label: this.$t('chart.filter_ge')
|
||||
}]
|
||||
},
|
||||
{
|
||||
label: '',
|
||||
options: [{
|
||||
value: 'null',
|
||||
label: this.$t('chart.filter_null')
|
||||
}, {
|
||||
value: 'not_null',
|
||||
label: this.$t('chart.filter_not_null')
|
||||
}]
|
||||
}
|
||||
],
|
||||
options: []
|
||||
|
@ -1201,7 +1201,7 @@ export default {
|
||||
saveDimensionFilter() {
|
||||
for (let i = 0; i < this.dimensionItem.filter.length; i++) {
|
||||
const f = this.dimensionItem.filter[i]
|
||||
if (!f.term.includes('null') && (!f.value || f.value === '')) {
|
||||
if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
|
||||
this.$message({
|
||||
message: this.$t('chart.filter_value_can_null'),
|
||||
type: 'error',
|
||||
@ -1225,7 +1225,7 @@ export default {
|
||||
saveQuotaFilter() {
|
||||
for (let i = 0; i < this.quotaItem.filter.length; i++) {
|
||||
const f = this.quotaItem.filter[i]
|
||||
if (!f.term.includes('null') && (!f.value || f.value === '')) {
|
||||
if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
|
||||
this.$message({
|
||||
message: this.$t('chart.filter_value_can_null'),
|
||||
type: 'error',
|
||||
@ -1258,7 +1258,7 @@ export default {
|
||||
saveResultFilter() {
|
||||
for (let i = 0; i < this.filterItem.filter.length; i++) {
|
||||
const f = this.filterItem.filter[i]
|
||||
if (!f.term.includes('null') && (!f.value || f.value === '')) {
|
||||
if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
|
||||
this.$message({
|
||||
message: this.$t('chart.filter_value_can_null'),
|
||||
type: 'error',
|
||||
|
Loading…
Reference in New Issue
Block a user