提交 3f7a7977 authored 作者: junjie's avatar junjie

feat(视图):doris视图fix

上级 de549dbc
...@@ -17,6 +17,8 @@ public class ChartViewFieldDTO implements Serializable { ...@@ -17,6 +17,8 @@ public class ChartViewFieldDTO implements Serializable {
private String originName; private String originName;
private String dataeaseName;
private String name; private String name;
private String type; private String type;
......
...@@ -199,9 +199,9 @@ public class ChartViewService { ...@@ -199,9 +199,9 @@ public class ChartViewService {
for (int i = 0; i < fields.size(); i++) { for (int i = 0; i < fields.size(); i++) {
ChartViewFieldDTO chartViewFieldDTO = fields.get(i); ChartViewFieldDTO chartViewFieldDTO = fields.get(i);
if (chartViewFieldDTO.getDeType() == 0 || chartViewFieldDTO.getDeType() == 1) { if (chartViewFieldDTO.getDeType() == 0 || chartViewFieldDTO.getDeType() == 1) {
d.put(fields.get(i).getOriginName(), ele[i]); d.put(fields.get(i).getDataeaseName(), ele[i]);
} else if (chartViewFieldDTO.getDeType() == 2 || chartViewFieldDTO.getDeType() == 3) { } else if (chartViewFieldDTO.getDeType() == 2 || chartViewFieldDTO.getDeType() == 3) {
d.put(fields.get(i).getOriginName(), new BigDecimal(ele[i]).setScale(2, RoundingMode.HALF_UP)); d.put(fields.get(i).getDataeaseName(), new BigDecimal(ele[i]).setScale(2, RoundingMode.HALF_UP));
} }
} }
tableRow.add(d); tableRow.add(d);
...@@ -231,7 +231,7 @@ public class ChartViewService { ...@@ -231,7 +231,7 @@ public class ChartViewService {
} }
DatasetTableField field = request.getDatasetTableField(); DatasetTableField field = request.getDatasetTableField();
filter.append(" AND ") filter.append(" AND ")
.append(field.getOriginName()) .append(field.getDataeaseName())
.append(" ") .append(" ")
.append(transMysqlFilterTerm(request.getOperator())) .append(transMysqlFilterTerm(request.getOperator()))
.append(" "); .append(" ");
...@@ -259,12 +259,12 @@ public class ChartViewService { ...@@ -259,12 +259,12 @@ public class ChartViewService {
public String transMysqlSQL(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartExtFilterRequest> extFilterRequestList) { public String transMysqlSQL(String table, List<ChartViewFieldDTO> xAxis, List<ChartViewFieldDTO> yAxis, List<ChartExtFilterRequest> extFilterRequestList) {
// 字段汇总 排序等 // 字段汇总 排序等
String[] field = yAxis.stream().map(y -> "CAST(" + y.getSummary() + "(" + y.getOriginName() + ") AS DECIMAL(20,2)) AS _" + y.getSummary() + "_" + (StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName())).toArray(String[]::new); String[] field = yAxis.stream().map(y -> "CAST(" + y.getSummary() + "(" + y.getDataeaseName() + ") AS DECIMAL(20,2)) AS _" + y.getSummary() + "_" + (StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName())).toArray(String[]::new);
String[] group = xAxis.stream().map(ChartViewFieldDTO::getOriginName).toArray(String[]::new); String[] group = xAxis.stream().map(ChartViewFieldDTO::getDataeaseName).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.getDataeaseName() + " " + 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.getDataeaseName(), "*") ? "" : f.getDataeaseName()) + " " + 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);
...@@ -272,7 +272,7 @@ public class ChartViewService { ...@@ -272,7 +272,7 @@ 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.getOriginName()).append(transMysqlFilterTerm(f.getTerm())); filter.append(" AND ").append(x.getDataeaseName()).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("')");
...@@ -301,7 +301,7 @@ public class ChartViewService { ...@@ -301,7 +301,7 @@ 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.getOriginName(), "*") ? "" : y.getOriginName()).append(transMysqlFilterTerm(f.getTerm())); filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()).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("')");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论