fix: 区间条形图在doris数据源下查询错误

This commit is contained in:
ulleo 2023-12-21 15:59:22 +08:00
parent c1ee8ee7ce
commit 08f31371a6

View File

@ -781,11 +781,38 @@ public class DorisQueryProvider extends QueryProvider {
List<SQLObj> yFields = new ArrayList<>(); // 要把两个时间字段放进y里面
List<String> yWheres = new ArrayList<>();
List<SQLObj> yOrders = new ArrayList<>();
if (CollectionUtils.isNotEmpty(xAxis)) {
for (int i = 0; i < xAxis.size(); i++) {
ChartViewFieldDTO x = xAxis.get(i);
String originField;
if (StringUtils.equalsIgnoreCase(x.getGroupType(), "q")) {
if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式
originField = calcFieldRegex(x.getOriginName(), tableObj);
} else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) {
originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName());
} else {
originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName());
}
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
// 处理纵轴字段
yFields.add(getYFields(x, originField, fieldAlias));
// 处理纵轴过滤
yWheres.add(getYWheres(x, originField, fieldAlias));
// 处理纵轴排序
if (StringUtils.isNotEmpty(x.getSort()) && Utils.joinSort(x.getSort())) {
yOrders.add(SQLObj.builder()
.orderField(originField)
.orderAlias(fieldAlias)
.orderDirection(x.getSort())
.build());
}
continue;
}
if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式
originField = calcFieldRegex(x.getOriginName(), tableObj);
@ -824,8 +851,6 @@ public class DorisQueryProvider extends QueryProvider {
}
}
List<SQLObj> yOrders = new ArrayList<>();
// 处理视图中字段过滤
String customWheres = transChartFilterTrees(tableObj, fieldCustomFilter);
// 处理仪表板字段过滤