提交 2e0a4e2e authored 作者: junjie's avatar junjie

feat(视图):时间条件过滤做处理

上级 422fbbfc
...@@ -231,9 +231,14 @@ public class ChartViewService { ...@@ -231,9 +231,14 @@ public class ChartViewService {
continue; continue;
} }
DatasetTableField field = request.getDatasetTableField(); DatasetTableField field = request.getDatasetTableField();
filter.append(" AND ") if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
.append(field.getDataeaseName()) filter.append(" AND FROM_UNIXTIME(cast(")
.append(" ") .append(field.getDataeaseName())
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else {
filter.append(" AND ").append(field.getDataeaseName());
}
filter.append(" ")
.append(transMysqlFilterTerm(request.getOperator())) .append(transMysqlFilterTerm(request.getOperator()))
.append(" "); .append(" ");
if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) {
...@@ -303,7 +308,14 @@ public class ChartViewService { ...@@ -303,7 +308,14 @@ public class ChartViewService {
.map(x -> { .map(x -> {
String[] s = x.getFilter().stream().map(f -> { String[] s = x.getFilter().stream().map(f -> {
StringBuilder filter = new StringBuilder(); StringBuilder filter = new StringBuilder();
filter.append(" AND ").append(x.getDataeaseName()).append(transMysqlFilterTerm(f.getTerm())); if (x.getDeType() == 1 && x.getDeExtractType() != 1) {
filter.append(" AND FROM_UNIXTIME(cast(")
.append(x.getDataeaseName())
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else {
filter.append(" AND ").append(x.getDataeaseName());
}
filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')"); filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
...@@ -332,7 +344,14 @@ public class ChartViewService { ...@@ -332,7 +344,14 @@ public class ChartViewService {
.map(y -> { .map(y -> {
String[] s = y.getFilter().stream().map(f -> { String[] s = y.getFilter().stream().map(f -> {
StringBuilder filter = new StringBuilder(); StringBuilder filter = new StringBuilder();
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()).append(transMysqlFilterTerm(f.getTerm())); if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
filter.append(" AND FROM_UNIXTIME(cast(_")
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName())
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else {
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName());
}
filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')"); filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
...@@ -362,13 +381,16 @@ public class ChartViewService { ...@@ -362,13 +381,16 @@ public class ChartViewService {
if (StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*")) { if (StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*")) {
f.append(y.getSummary()).append("(").append(y.getDataeaseName()).append(")"); f.append(y.getSummary()).append("(").append(y.getDataeaseName()).append(")");
} else { } else {
// f.append("CAST(") if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) {
// .append(y.getSummary()).append("(") f.append("CAST(")
// .append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") .append(y.getSummary()).append("(")
// .append(") AS DECIMAL(20,2)").append(")"); .append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
f.append(y.getSummary()).append("(") .append(") AS DECIMAL(20,2)").append(")");
.append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") } else {
.append(")"); f.append(y.getSummary()).append("(")
.append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")")
.append(")");
}
} }
f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()); f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName());
return f.toString(); return f.toString();
...@@ -403,14 +425,21 @@ public class ChartViewService { ...@@ -403,14 +425,21 @@ public class ChartViewService {
.map(x -> { .map(x -> {
String[] s = x.getFilter().stream().map(f -> { String[] s = x.getFilter().stream().map(f -> {
StringBuilder filter = new StringBuilder(); StringBuilder filter = new StringBuilder();
filter.append(" AND ").append(x.getDataeaseName()).append(transMysqlFilterTerm(f.getTerm())); if (x.getDeType() == 1 && x.getDeExtractType() != 1) {
filter.append(" AND FROM_UNIXTIME(cast(")
.append(x.getDataeaseName())
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else {
filter.append(" AND ").append(x.getDataeaseName());
}
filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')"); filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
} 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);
...@@ -432,14 +461,22 @@ public class ChartViewService { ...@@ -432,14 +461,22 @@ public class ChartViewService {
.map(y -> { .map(y -> {
String[] s = y.getFilter().stream().map(f -> { String[] s = y.getFilter().stream().map(f -> {
StringBuilder filter = new StringBuilder(); StringBuilder filter = new StringBuilder();
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()).append(transMysqlFilterTerm(f.getTerm())); // 原始类型不是时间,在de中被转成时间的字段做处理
if (y.getDeType() == 1 && y.getDeExtractType() != 1) {
filter.append(" AND FROM_UNIXTIME(cast(_")
.append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName())
.append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') ");
} else {
filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName());
}
filter.append(transMysqlFilterTerm(f.getTerm()));
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')"); filter.append("('").append(StringUtils.join(f.getValue(), "','")).append("')");
} 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);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论