feat:过滤条件优化

This commit is contained in:
junjie 2021-10-12 11:14:05 +08:00
parent dadb1f4f4d
commit aa68de259c
14 changed files with 290 additions and 179 deletions

View File

@ -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)

View File

@ -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")) {

View File

@ -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")) {

View File

@ -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")) {

View File

@ -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")) {

View File

@ -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")) {

View File

@ -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")) {

View File

@ -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',

View File

@ -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: '玫瑰圖模式',

View File

@ -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: '玫瑰图模式',

View File

@ -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;
}

View File

@ -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')
}]
}]
}
},

View File

@ -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: []

View File

@ -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',