forked from github/dataease
fix: 自定义sql中出现count(*)等函数导致数据查询异常bug修复;doris查询 排序 过滤冲突sql修复
This commit is contained in:
parent
d264ed636e
commit
42325c6568
@ -189,7 +189,7 @@ public class DorisQueryProvider extends QueryProvider {
|
|||||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||||
filter.append("%").append(f.getValue()).append("%");
|
filter.append("%").append(f.getValue()).append("%");
|
||||||
} else {
|
} else {
|
||||||
filter.append("'" + f.getValue() + "'");
|
filter.append("'").append(f.getValue()).append("'");
|
||||||
}
|
}
|
||||||
return filter.toString();
|
return filter.toString();
|
||||||
}).toArray(String[]::new);
|
}).toArray(String[]::new);
|
||||||
@ -225,7 +225,7 @@ public class DorisQueryProvider extends QueryProvider {
|
|||||||
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
|
||||||
filter.append("%").append(f.getValue()).append("%");
|
filter.append("%").append(f.getValue()).append("%");
|
||||||
} else {
|
} else {
|
||||||
filter.append("'" + f.getValue() + "'");
|
filter.append("'").append(f.getValue()).append("'");
|
||||||
}
|
}
|
||||||
return filter.toString();
|
return filter.toString();
|
||||||
}).toArray(String[]::new);
|
}).toArray(String[]::new);
|
||||||
@ -234,9 +234,10 @@ public class DorisQueryProvider extends QueryProvider {
|
|||||||
if (resultFilter.length == 0) {
|
if (resultFilter.length == 0) {
|
||||||
return sql;
|
return sql;
|
||||||
} else {
|
} else {
|
||||||
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1}",
|
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
|
||||||
"(" + sql + ") AS tmp",
|
"(" + sql + ") AS tmp",
|
||||||
StringUtils.join(resultFilter, " "));
|
StringUtils.join(resultFilter, " "),
|
||||||
|
StringUtils.join(yOrder, ","));
|
||||||
return filterSql;
|
return filterSql;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -314,9 +315,10 @@ public class DorisQueryProvider extends QueryProvider {
|
|||||||
if (resultFilter.length == 0) {
|
if (resultFilter.length == 0) {
|
||||||
return sql;
|
return sql;
|
||||||
} else {
|
} else {
|
||||||
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1}",
|
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
|
||||||
"(" + sql + ") AS tmp",
|
"(" + sql + ") AS tmp",
|
||||||
StringUtils.join(resultFilter, " "));
|
StringUtils.join(resultFilter, " "),
|
||||||
|
StringUtils.join(order, ","));
|
||||||
return filterSql;
|
return filterSql;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createQueryCountSQL(String table) {
|
public String createQueryCountSQL(String table) {
|
||||||
return MessageFormat.format("SELECT count(*) FROM {0}", table);
|
return MessageFormat.format("SELECT COUNT(*) FROM {0}", table);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -79,25 +79,25 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
// 如果原始类型为时间
|
// 如果原始类型为时间
|
||||||
if (f.getDeExtractType() == 1) {
|
if (f.getDeExtractType() == 1) {
|
||||||
if (f.getDeType() == 2 || f.getDeType() == 3) {
|
if (f.getDeType() == 2 || f.getDeType() == 3) {
|
||||||
stringBuilder.append("unix_timestamp(").append(f.getOriginName()).append(")*1000 as ").append(f.getOriginName());
|
stringBuilder.append("UNIX_TIMESTAMP(`").append(f.getOriginName()).append("`)*1000 AS ").append(f.getDataeaseName());
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append(f.getOriginName());
|
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
|
||||||
}
|
}
|
||||||
} else if (f.getDeExtractType() == 0) {
|
} else if (f.getDeExtractType() == 0) {
|
||||||
if (f.getDeType() == 2) {
|
if (f.getDeType() == 2) {
|
||||||
stringBuilder.append("cast(").append(f.getOriginName()).append(" as decimal(20,0)) as ").append(f.getOriginName());
|
stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0)) AS ").append(f.getDataeaseName());
|
||||||
} else if (f.getDeType() == 3) {
|
} else if (f.getDeType() == 3) {
|
||||||
stringBuilder.append("cast(").append(f.getOriginName()).append(" as decimal(20,2)) as ").append(f.getOriginName());
|
stringBuilder.append("CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,2)) AS ").append(f.getDataeaseName());
|
||||||
} else if (f.getDeType() == 1) {
|
} else if (f.getDeType() == 1) {
|
||||||
stringBuilder.append("DATE_FORMAT(").append(f.getOriginName()).append(",'%Y-%m-%d %H:%i:%S') as _").append(f.getOriginName());
|
stringBuilder.append("DATE_FORMAT(`").append(f.getOriginName()).append("`,'%Y-%m-%d %H:%i:%S') AS _").append(f.getDataeaseName());
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append(f.getOriginName());
|
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (f.getDeType() == 1) {
|
if (f.getDeType() == 1) {
|
||||||
stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getOriginName());
|
stringBuilder.append("FROM_UNIXTIME(CAST(`").append(f.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') AS ").append(f.getDataeaseName());
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append(f.getOriginName());
|
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
@ -128,20 +128,20 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
String[] field = yAxis.stream().map(y -> {
|
String[] field = yAxis.stream().map(y -> {
|
||||||
StringBuilder f = new StringBuilder();
|
StringBuilder f = new StringBuilder();
|
||||||
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
|
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
|
||||||
f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")");
|
f.append(y.getSummary()).append("(`").append(y.getOriginName()).append("`)");
|
||||||
} else {
|
} else {
|
||||||
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
|
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
|
||||||
f.append("CAST(")
|
f.append("CAST(")
|
||||||
.append(y.getSummary()).append("(")
|
.append(y.getSummary()).append("(")
|
||||||
.append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||||
.append(") AS DECIMAL(20,2)").append(")");
|
.append(") AS DECIMAL(20,2)").append(")");
|
||||||
} else {
|
} else {
|
||||||
f.append(y.getSummary()).append("(")
|
f.append(y.getSummary()).append("(")
|
||||||
.append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||||
.append(")");
|
.append(")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName());
|
f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
|
||||||
return f.toString();
|
return f.toString();
|
||||||
}).toArray(String[]::new);
|
}).toArray(String[]::new);
|
||||||
String[] groupField = xAxis.stream().map(x -> {
|
String[] groupField = xAxis.stream().map(x -> {
|
||||||
@ -149,32 +149,32 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
// 如果原始类型为时间
|
// 如果原始类型为时间
|
||||||
if (x.getDeExtractType() == 1) {
|
if (x.getDeExtractType() == 1) {
|
||||||
if (x.getDeType() == 2 || x.getDeType() == 3) {
|
if (x.getDeType() == 2 || x.getDeType() == 3) {
|
||||||
stringBuilder.append("unix_timestamp(").append(x.getOriginName()).append(")*1000 as _").append(x.getOriginName());
|
stringBuilder.append("UNIX_TIMESTAMP(`").append(x.getOriginName()).append("`)*1000 AS `_").append(x.getOriginName()).append("`");
|
||||||
} else if (x.getDeType() == 1) {
|
} else if (x.getDeType() == 1) {
|
||||||
String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
|
String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
|
||||||
stringBuilder.append("DATE_FORMAT(").append(x.getOriginName()).append(",'").append(format).append("') as _").append(x.getOriginName());
|
stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append(x.getOriginName()).append(" as _").append(x.getOriginName());
|
stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (x.getDeType() == 1) {
|
if (x.getDeType() == 1) {
|
||||||
String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
|
String format = transDateFormat(x.getDateStyle(), x.getDatePattern());
|
||||||
if (x.getDeExtractType() == 0) {
|
if (x.getDeExtractType() == 0) {
|
||||||
stringBuilder.append("DATE_FORMAT(").append(x.getOriginName()).append(",'").append(format).append("') as _").append(x.getOriginName());
|
stringBuilder.append("DATE_FORMAT(`").append(x.getOriginName()).append("`,'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append("DATE_FORMAT(").append("FROM_UNIXTIME(cast(").append(x.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S')").append(",'").append(format).append("') as _").append(x.getOriginName());
|
stringBuilder.append("DATE_FORMAT(").append("FROM_UNIXTIME(CAST(`").append(x.getOriginName()).append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S')").append(",'").append(format).append("') AS `_").append(x.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append(x.getOriginName()).append(" as _").append(x.getOriginName());
|
stringBuilder.append("`").append(x.getOriginName()).append("` AS `_").append(x.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
}).toArray(String[]::new);
|
}).toArray(String[]::new);
|
||||||
String[] group = xAxis.stream().map(x -> "_" + x.getOriginName()).toArray(String[]::new);
|
String[] group = xAxis.stream().map(x -> "`_" + x.getOriginName() + "`").toArray(String[]::new);
|
||||||
String[] xOrder = xAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
String[] xOrder = xAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
||||||
.map(f -> "_" + f.getOriginName() + " " + f.getSort()).toArray(String[]::new);
|
.map(f -> "`_" + f.getOriginName() + "` " + f.getSort()).toArray(String[]::new);
|
||||||
String[] yOrder = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
String[] yOrder = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
||||||
.map(f -> "_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + " " + f.getSort()).toArray(String[]::new);
|
.map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new);
|
||||||
String[] order = Arrays.copyOf(xOrder, xOrder.length + yOrder.length);
|
String[] order = Arrays.copyOf(xOrder, xOrder.length + yOrder.length);
|
||||||
System.arraycopy(yOrder, 0, order, xOrder.length, yOrder.length);
|
System.arraycopy(yOrder, 0, order, xOrder.length, yOrder.length);
|
||||||
|
|
||||||
@ -183,11 +183,11 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
String[] s = x.getFilter().stream().map(f -> {
|
String[] s = x.getFilter().stream().map(f -> {
|
||||||
StringBuilder filter = new StringBuilder();
|
StringBuilder filter = new StringBuilder();
|
||||||
if (x.getDeType() == 1 && x.getDeExtractType() != 1) {
|
if (x.getDeType() == 1 && x.getDeExtractType() != 1) {
|
||||||
filter.append(" AND FROM_UNIXTIME(cast(")
|
filter.append(" AND FROM_UNIXTIME(cast(`")
|
||||||
.append(x.getOriginName())
|
.append(x.getOriginName())
|
||||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||||
} else {
|
} else {
|
||||||
filter.append(" AND ").append(x.getOriginName());
|
filter.append(" AND `").append(x.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
filter.append(transMysqlFilterTerm(f.getTerm()));
|
filter.append(transMysqlFilterTerm(f.getTerm()));
|
||||||
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
|
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
|
||||||
@ -220,11 +220,11 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
StringBuilder filter = new StringBuilder();
|
StringBuilder filter = new StringBuilder();
|
||||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||||
if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
|
if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
|
||||||
filter.append(" AND FROM_UNIXTIME(cast(_")
|
filter.append(" AND FROM_UNIXTIME(CAST(`_")
|
||||||
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())
|
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`")
|
||||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
.append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||||
} else {
|
} else {
|
||||||
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName());
|
filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
filter.append(transMysqlFilterTerm(f.getTerm()));
|
filter.append(transMysqlFilterTerm(f.getTerm()));
|
||||||
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
|
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
|
||||||
@ -242,9 +242,10 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
if (resultFilter.length == 0) {
|
if (resultFilter.length == 0) {
|
||||||
return sql;
|
return sql;
|
||||||
} else {
|
} else {
|
||||||
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1}",
|
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
|
||||||
"(" + sql + ") AS tmp",
|
"(" + sql + ") AS tmp",
|
||||||
StringUtils.join(resultFilter, " "));
|
StringUtils.join(resultFilter, " "),
|
||||||
|
StringUtils.join(yOrder, ","));
|
||||||
return filterSql;
|
return filterSql;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,25 +266,25 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
String[] field = yAxis.stream().map(y -> {
|
String[] field = yAxis.stream().map(y -> {
|
||||||
StringBuilder f = new StringBuilder();
|
StringBuilder f = new StringBuilder();
|
||||||
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
|
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
|
||||||
f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")");
|
f.append(y.getSummary()).append("(`").append(y.getOriginName()).append("`)");
|
||||||
} else {
|
} else {
|
||||||
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
|
if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
|
||||||
f.append("CAST(")
|
f.append("CAST(")
|
||||||
.append(y.getSummary()).append("(")
|
.append(y.getSummary()).append("(")
|
||||||
.append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||||
.append(") AS DECIMAL(20,2)").append(")");
|
.append(") AS DECIMAL(20,2)").append(")");
|
||||||
} else {
|
} else {
|
||||||
f.append(y.getSummary()).append("(")
|
f.append(y.getSummary()).append("(")
|
||||||
.append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
.append("CAST(`").append(y.getOriginName()).append("` AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
|
||||||
.append(")");
|
.append(")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName());
|
f.append(" AS `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
|
||||||
return f.toString();
|
return f.toString();
|
||||||
}).toArray(String[]::new);
|
}).toArray(String[]::new);
|
||||||
|
|
||||||
String[] order = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
String[] order = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none"))
|
||||||
.map(f -> "_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + " " + f.getSort()).toArray(String[]::new);
|
.map(f -> "`_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + "` " + f.getSort()).toArray(String[]::new);
|
||||||
|
|
||||||
String sql = MessageFormat.format("SELECT {0} FROM {1} WHERE 1=1 {2} ORDER BY null,{3}",
|
String sql = MessageFormat.format("SELECT {0} FROM {1} WHERE 1=1 {2} ORDER BY null,{3}",
|
||||||
StringUtils.join(field, ","),
|
StringUtils.join(field, ","),
|
||||||
@ -300,11 +301,11 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
StringBuilder filter = new StringBuilder();
|
StringBuilder filter = new StringBuilder();
|
||||||
// 原始类型不是时间,在de中被转成时间的字段做处理
|
// 原始类型不是时间,在de中被转成时间的字段做处理
|
||||||
if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
|
if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
|
||||||
filter.append(" AND FROM_UNIXTIME(cast(_")
|
filter.append(" AND FROM_UNIXTIME(CAST(`_")
|
||||||
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())
|
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`")
|
||||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
.append(" AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||||
} else {
|
} else {
|
||||||
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName());
|
filter.append(" AND `_").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
filter.append(transMysqlFilterTerm(f.getTerm()));
|
filter.append(transMysqlFilterTerm(f.getTerm()));
|
||||||
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
|
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
|
||||||
@ -322,9 +323,10 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
if (resultFilter.length == 0) {
|
if (resultFilter.length == 0) {
|
||||||
return sql;
|
return sql;
|
||||||
} else {
|
} else {
|
||||||
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1}",
|
String filterSql = MessageFormat.format("SELECT * FROM {0} WHERE 1=1 {1} ORDER BY {2}",
|
||||||
"(" + sql + ") AS tmp",
|
"(" + sql + ") AS tmp",
|
||||||
StringUtils.join(resultFilter, " "));
|
StringUtils.join(resultFilter, " "),
|
||||||
|
StringUtils.join(order, ","));
|
||||||
return filterSql;
|
return filterSql;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -379,11 +381,11 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
|
if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
|
||||||
filter.append(" AND FROM_UNIXTIME(cast(")
|
filter.append(" AND FROM_UNIXTIME(CAST(`")
|
||||||
.append(field.getOriginName())
|
.append(field.getOriginName())
|
||||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||||
} else {
|
} else {
|
||||||
filter.append(" AND ").append(field.getOriginName());
|
filter.append(" AND `").append(field.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
filter.append(" ")
|
filter.append(" ")
|
||||||
.append(transMysqlFilterTerm(request.getTerm()))
|
.append(transMysqlFilterTerm(request.getTerm()))
|
||||||
@ -412,11 +414,11 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
}
|
}
|
||||||
DatasetTableField field = request.getDatasetTableField();
|
DatasetTableField field = request.getDatasetTableField();
|
||||||
if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
|
if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
|
||||||
filter.append(" AND FROM_UNIXTIME(cast(")
|
filter.append(" AND FROM_UNIXTIME(CAST(`")
|
||||||
.append(field.getOriginName())
|
.append(field.getOriginName())
|
||||||
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
.append("` AS DECIMAL(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
|
||||||
} else {
|
} else {
|
||||||
filter.append(" AND ").append(field.getOriginName());
|
filter.append(" AND `").append(field.getOriginName()).append("`");
|
||||||
}
|
}
|
||||||
filter.append(" ")
|
filter.append(" ")
|
||||||
.append(transMysqlFilterTerm(request.getOperator()))
|
.append(transMysqlFilterTerm(request.getOperator()))
|
||||||
|
@ -220,7 +220,7 @@ export default {
|
|||||||
dataSourceId: this.dataSource,
|
dataSourceId: this.dataSource,
|
||||||
type: 'sql',
|
type: 'sql',
|
||||||
// info: '{"sql":"' + this.sql + '"}',
|
// info: '{"sql":"' + this.sql + '"}',
|
||||||
info: JSON.stringify({ sql: this.sql })
|
info: JSON.stringify({ sql: this.sql.trim() })
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
this.fields = response.data.fields
|
this.fields = response.data.fields
|
||||||
this.data = response.data.data
|
this.data = response.data.data
|
||||||
@ -262,7 +262,7 @@ export default {
|
|||||||
type: 'sql',
|
type: 'sql',
|
||||||
mode: parseInt(this.mode),
|
mode: parseInt(this.mode),
|
||||||
// info: '{"sql":"' + this.sql + '"}',
|
// info: '{"sql":"' + this.sql + '"}',
|
||||||
info: JSON.stringify({ sql: this.sql })
|
info: JSON.stringify({ sql: this.sql.trim() })
|
||||||
}
|
}
|
||||||
post('/dataset/table/update', table).then(response => {
|
post('/dataset/table/update', table).then(response => {
|
||||||
// this.$store.dispatch('dataset/setSceneData', new Date().getTime())
|
// this.$store.dispatch('dataset/setSceneData', new Date().getTime())
|
||||||
|
Loading…
Reference in New Issue
Block a user