mirror of
https://github.com/dataease/dataease.git
synced 2025-02-24 11:32:57 +08:00
refactor: 过滤组件下拉选项值优化
This commit is contained in:
parent
d4d8b5acb2
commit
230804d950
@ -1,7 +1,6 @@
|
||||
package io.dataease.dataset.manage;
|
||||
|
||||
import io.dataease.api.chart.dto.ChartExtFilterDTO;
|
||||
import io.dataease.api.chart.dto.ChartViewDTO;
|
||||
import io.dataease.api.chart.dto.ColumnPermissionItem;
|
||||
import io.dataease.api.chart.dto.DeSortField;
|
||||
import io.dataease.api.chart.request.ChartExtRequest;
|
||||
@ -204,7 +203,7 @@ public class DatasetDataManage {
|
||||
Table2SQLObj.table2sqlobj(sqlMeta, null, "(" + sql + ")", crossDs);
|
||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, fields, crossDs, dsMap);
|
||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, fields, crossDs, dsMap);
|
||||
Order2SQLObj.getOrders(sqlMeta, fields, datasetGroupInfoDTO.getSortFields(), crossDs, dsMap);
|
||||
Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), fields, crossDs, dsMap);
|
||||
String querySQL;
|
||||
if (start == null || count == null) {
|
||||
querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, false);
|
||||
@ -425,13 +424,9 @@ public class DatasetDataManage {
|
||||
}
|
||||
List<DatasetTableFieldDTO> allFields = new ArrayList<>();
|
||||
// 根据图表计算字段,获取数据集
|
||||
Long datasetGroupId;
|
||||
if (field.getDatasetGroupId() == null && field.getChartId() != null) {
|
||||
ChartViewDTO chart = chartViewManege.getChart(field.getChartId());
|
||||
datasetGroupId = chart.getTableId();
|
||||
Long datasetGroupId = field.getDatasetGroupId();
|
||||
if (field.getChartId() != null) {
|
||||
allFields.addAll(datasetTableFieldManage.getChartCalcFields(field.getChartId()));
|
||||
} else {
|
||||
datasetGroupId = field.getDatasetGroupId();
|
||||
}
|
||||
DatasetGroupInfoDTO datasetGroupInfoDTO = datasetGroupManage.get(datasetGroupId, null);
|
||||
|
||||
@ -471,9 +466,9 @@ public class DatasetDataManage {
|
||||
rowPermissionsTree = permissionManage.getRowPermissionsTree(datasetGroupInfoDTO.getId(), user.getUserId());
|
||||
}
|
||||
|
||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap);
|
||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, fields, crossDs, dsMap);
|
||||
Order2SQLObj.getOrders(sqlMeta, fields, datasetGroupInfoDTO.getSortFields(), crossDs, dsMap);
|
||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, allFields, crossDs, dsMap);
|
||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap);
|
||||
Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), allFields, crossDs, dsMap);
|
||||
String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, true, 0, 1000);
|
||||
querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
||||
logger.info("calcite data enum sql: " + querySQL);
|
||||
@ -539,20 +534,18 @@ public class DatasetDataManage {
|
||||
}
|
||||
}
|
||||
|
||||
List<DatasetTableFieldDTO> allFields = new ArrayList<>();
|
||||
|
||||
for (Long id : ids) {
|
||||
DatasetTableFieldDTO field = datasetTableFieldManage.selectById(id);
|
||||
if (field == null) {
|
||||
DEException.throwException(Translator.get("i18n_no_field"));
|
||||
}
|
||||
List<DatasetTableFieldDTO> allFields = new ArrayList<>();
|
||||
|
||||
// 根据图表计算字段,获取数据集
|
||||
Long datasetGroupId;
|
||||
if (field.getDatasetGroupId() == null && field.getChartId() != null) {
|
||||
ChartViewDTO chart = chartViewManege.getChart(field.getChartId());
|
||||
datasetGroupId = chart.getTableId();
|
||||
Long datasetGroupId = field.getDatasetGroupId();
|
||||
if (field.getChartId() != null) {
|
||||
allFields.addAll(datasetTableFieldManage.getChartCalcFields(field.getChartId()));
|
||||
} else {
|
||||
datasetGroupId = field.getDatasetGroupId();
|
||||
}
|
||||
datasetGroupInfoDTO = datasetGroupManage.get(datasetGroupId, null);
|
||||
|
||||
@ -687,10 +680,10 @@ public class DatasetDataManage {
|
||||
sortDistinct = false;
|
||||
}
|
||||
|
||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap);
|
||||
ExtWhere2Str.extWhere2sqlOjb(sqlMeta, extFilterList, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap);
|
||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, fields, crossDs, dsMap);
|
||||
Order2SQLObj.getOrders(sqlMeta, fields, datasetGroupInfoDTO.getSortFields(), crossDs, dsMap);
|
||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, allFields, crossDs, dsMap);
|
||||
ExtWhere2Str.extWhere2sqlOjb(sqlMeta, extFilterList, allFields, crossDs, dsMap);
|
||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap);
|
||||
Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), allFields, crossDs, dsMap);
|
||||
String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1, 0, 1000);
|
||||
querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
||||
logger.info("calcite data enum sql: " + querySQL);
|
||||
|
@ -22,17 +22,17 @@ import java.util.Objects;
|
||||
*/
|
||||
public class Order2SQLObj {
|
||||
|
||||
public static void getOrders(SQLMeta meta, List<DatasetTableFieldDTO> fields, List<DeSortField> sortFields, boolean isCross, Map<Long, DatasourceSchemaDTO> dsMap) {
|
||||
public static void getOrders(SQLMeta meta, List<DeSortField> sortFields, List<DatasetTableFieldDTO> originFields, boolean isCross, Map<Long, DatasourceSchemaDTO> dsMap) {
|
||||
SQLObj tableObj = meta.getTable();
|
||||
List<SQLObj> xOrders = meta.getXOrders() == null ? new ArrayList<>() : meta.getXOrders();
|
||||
if (ObjectUtils.isEmpty(tableObj)) {
|
||||
return;
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(sortFields)) {
|
||||
int step = fields.size();
|
||||
int step = originFields.size();
|
||||
for (int i = step; i < (step + sortFields.size()); i++) {
|
||||
DeSortField deSortField = sortFields.get(i - step);
|
||||
SQLObj order = buildSortField(deSortField, tableObj, i, fields, isCross, dsMap);
|
||||
SQLObj order = buildSortField(deSortField, tableObj, i, originFields, isCross, dsMap);
|
||||
xOrders.add(order);
|
||||
}
|
||||
meta.setXOrders(xOrders);
|
||||
|
Loading…
Reference in New Issue
Block a user