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;
|
package io.dataease.dataset.manage;
|
||||||
|
|
||||||
import io.dataease.api.chart.dto.ChartExtFilterDTO;
|
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.ColumnPermissionItem;
|
||||||
import io.dataease.api.chart.dto.DeSortField;
|
import io.dataease.api.chart.dto.DeSortField;
|
||||||
import io.dataease.api.chart.request.ChartExtRequest;
|
import io.dataease.api.chart.request.ChartExtRequest;
|
||||||
@ -204,7 +203,7 @@ public class DatasetDataManage {
|
|||||||
Table2SQLObj.table2sqlobj(sqlMeta, null, "(" + sql + ")", crossDs);
|
Table2SQLObj.table2sqlobj(sqlMeta, null, "(" + sql + ")", crossDs);
|
||||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, fields, crossDs, dsMap);
|
Field2SQLObj.field2sqlObj(sqlMeta, fields, fields, crossDs, dsMap);
|
||||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, 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;
|
String querySQL;
|
||||||
if (start == null || count == null) {
|
if (start == null || count == null) {
|
||||||
querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, false);
|
querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, false);
|
||||||
@ -425,13 +424,9 @@ public class DatasetDataManage {
|
|||||||
}
|
}
|
||||||
List<DatasetTableFieldDTO> allFields = new ArrayList<>();
|
List<DatasetTableFieldDTO> allFields = new ArrayList<>();
|
||||||
// 根据图表计算字段,获取数据集
|
// 根据图表计算字段,获取数据集
|
||||||
Long datasetGroupId;
|
Long datasetGroupId = field.getDatasetGroupId();
|
||||||
if (field.getDatasetGroupId() == null && field.getChartId() != null) {
|
if (field.getChartId() != null) {
|
||||||
ChartViewDTO chart = chartViewManege.getChart(field.getChartId());
|
|
||||||
datasetGroupId = chart.getTableId();
|
|
||||||
allFields.addAll(datasetTableFieldManage.getChartCalcFields(field.getChartId()));
|
allFields.addAll(datasetTableFieldManage.getChartCalcFields(field.getChartId()));
|
||||||
} else {
|
|
||||||
datasetGroupId = field.getDatasetGroupId();
|
|
||||||
}
|
}
|
||||||
DatasetGroupInfoDTO datasetGroupInfoDTO = datasetGroupManage.get(datasetGroupId, null);
|
DatasetGroupInfoDTO datasetGroupInfoDTO = datasetGroupManage.get(datasetGroupId, null);
|
||||||
|
|
||||||
@ -471,9 +466,9 @@ public class DatasetDataManage {
|
|||||||
rowPermissionsTree = permissionManage.getRowPermissionsTree(datasetGroupInfoDTO.getId(), user.getUserId());
|
rowPermissionsTree = permissionManage.getRowPermissionsTree(datasetGroupInfoDTO.getId(), user.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap);
|
Field2SQLObj.field2sqlObj(sqlMeta, fields, allFields, crossDs, dsMap);
|
||||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, fields, crossDs, dsMap);
|
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap);
|
||||||
Order2SQLObj.getOrders(sqlMeta, fields, datasetGroupInfoDTO.getSortFields(), crossDs, dsMap);
|
Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), allFields, crossDs, dsMap);
|
||||||
String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, true, 0, 1000);
|
String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, true, 0, 1000);
|
||||||
querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
||||||
logger.info("calcite data enum sql: " + querySQL);
|
logger.info("calcite data enum sql: " + querySQL);
|
||||||
@ -539,20 +534,18 @@ public class DatasetDataManage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<DatasetTableFieldDTO> allFields = new ArrayList<>();
|
||||||
|
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
DatasetTableFieldDTO field = datasetTableFieldManage.selectById(id);
|
DatasetTableFieldDTO field = datasetTableFieldManage.selectById(id);
|
||||||
if (field == null) {
|
if (field == null) {
|
||||||
DEException.throwException(Translator.get("i18n_no_field"));
|
DEException.throwException(Translator.get("i18n_no_field"));
|
||||||
}
|
}
|
||||||
List<DatasetTableFieldDTO> allFields = new ArrayList<>();
|
|
||||||
// 根据图表计算字段,获取数据集
|
// 根据图表计算字段,获取数据集
|
||||||
Long datasetGroupId;
|
Long datasetGroupId = field.getDatasetGroupId();
|
||||||
if (field.getDatasetGroupId() == null && field.getChartId() != null) {
|
if (field.getChartId() != null) {
|
||||||
ChartViewDTO chart = chartViewManege.getChart(field.getChartId());
|
|
||||||
datasetGroupId = chart.getTableId();
|
|
||||||
allFields.addAll(datasetTableFieldManage.getChartCalcFields(field.getChartId()));
|
allFields.addAll(datasetTableFieldManage.getChartCalcFields(field.getChartId()));
|
||||||
} else {
|
|
||||||
datasetGroupId = field.getDatasetGroupId();
|
|
||||||
}
|
}
|
||||||
datasetGroupInfoDTO = datasetGroupManage.get(datasetGroupId, null);
|
datasetGroupInfoDTO = datasetGroupManage.get(datasetGroupId, null);
|
||||||
|
|
||||||
@ -687,10 +680,10 @@ public class DatasetDataManage {
|
|||||||
sortDistinct = false;
|
sortDistinct = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Field2SQLObj.field2sqlObj(sqlMeta, fields, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap);
|
Field2SQLObj.field2sqlObj(sqlMeta, fields, allFields, crossDs, dsMap);
|
||||||
ExtWhere2Str.extWhere2sqlOjb(sqlMeta, extFilterList, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap);
|
ExtWhere2Str.extWhere2sqlOjb(sqlMeta, extFilterList, allFields, crossDs, dsMap);
|
||||||
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, fields, crossDs, dsMap);
|
WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, allFields, crossDs, dsMap);
|
||||||
Order2SQLObj.getOrders(sqlMeta, fields, datasetGroupInfoDTO.getSortFields(), crossDs, dsMap);
|
Order2SQLObj.getOrders(sqlMeta, datasetGroupInfoDTO.getSortFields(), allFields, crossDs, dsMap);
|
||||||
String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1, 0, 1000);
|
String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1, 0, 1000);
|
||||||
querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap);
|
||||||
logger.info("calcite data enum sql: " + querySQL);
|
logger.info("calcite data enum sql: " + querySQL);
|
||||||
|
@ -22,17 +22,17 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
public class Order2SQLObj {
|
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();
|
SQLObj tableObj = meta.getTable();
|
||||||
List<SQLObj> xOrders = meta.getXOrders() == null ? new ArrayList<>() : meta.getXOrders();
|
List<SQLObj> xOrders = meta.getXOrders() == null ? new ArrayList<>() : meta.getXOrders();
|
||||||
if (ObjectUtils.isEmpty(tableObj)) {
|
if (ObjectUtils.isEmpty(tableObj)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ObjectUtils.isNotEmpty(sortFields)) {
|
if (ObjectUtils.isNotEmpty(sortFields)) {
|
||||||
int step = fields.size();
|
int step = originFields.size();
|
||||||
for (int i = step; i < (step + sortFields.size()); i++) {
|
for (int i = step; i < (step + sortFields.size()); i++) {
|
||||||
DeSortField deSortField = sortFields.get(i - step);
|
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);
|
xOrders.add(order);
|
||||||
}
|
}
|
||||||
meta.setXOrders(xOrders);
|
meta.setXOrders(xOrders);
|
||||||
|
Loading…
Reference in New Issue
Block a user