Skip to content

Commit

Permalink
Merge pull request dataease#1373 from dataease/pr@dev@feat_unon_ds
Browse files Browse the repository at this point in the history
feat(数据集): 关联数据集
  • Loading branch information
XiaJunjie2020 authored Dec 2, 2021
2 parents 70cdd22 + acb5457 commit 408a796
Show file tree
Hide file tree
Showing 18 changed files with 653 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ public static String dorisFieldName(String dorisName) {
return "f_" + Md5Utils.md5(dorisName);
}

public static String dorisFieldNameShort(String dorisName) {
return "f_" + Md5Utils.md5(dorisName).substring(8, 24);
}

public static String columnName(String filedName) {
return "C_" + Md5Utils.md5(filedName);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,9 @@ public DataSetDetail datasetDetail(@PathVariable String id) {
@ApiOperation("excel上传")
@PostMapping("excel/upload")
@ApiImplicitParams({
@ApiImplicitParam(name = "file", value = "文件", required = true, dataType = "MultipartFile"),
@ApiImplicitParam(name = "tableId", value = "数据表ID", required = true, dataType = "String"),
@ApiImplicitParam(name = "editType", value = "编辑类型", required = true, dataType = "Integer")
@ApiImplicitParam(name = "file", value = "文件", required = true, dataType = "MultipartFile"),
@ApiImplicitParam(name = "tableId", value = "数据表ID", required = true, dataType = "String"),
@ApiImplicitParam(name = "editType", value = "编辑类型", required = true, dataType = "Integer")
})
public ExcelFileData excelUpload(@RequestParam("file") MultipartFile file, @RequestParam("tableId") String tableId, @RequestParam("editType") Integer editType) throws Exception {
return dataSetTableService.excelSaveAndParse(file, tableId, editType);
Expand All @@ -158,4 +158,10 @@ public List<DataSetTableDTO> search(@RequestBody DataSetTableRequest dataSetTabl
public DatasetTable syncDatasetTableField(@PathVariable String id) throws Exception {
return dataSetTableService.syncDatasetTableField(id);
}

@ApiOperation("关联数据集预览数据")
@PostMapping("unionPreview")
public Map<String, Object> unionPreview(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception {
return dataSetTableService.getUnionPreview(dataSetTableRequest);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.dataease.dto.dataset;

import io.dataease.dto.dataset.union.UnionDTO;
import lombok.Getter;
import lombok.Setter;

Expand All @@ -16,5 +17,6 @@ public class DataTableInfoDTO {
private String sql;
private List<ExcelSheetData> excelSheetDataList;
private String data;// file path
private List<DataTableInfoCustomUnion> list;
private List<DataTableInfoCustomUnion> list;// 自定义数据集
private List<UnionDTO> union;// 关联数据集
}
19 changes: 19 additions & 0 deletions backend/src/main/java/io/dataease/dto/dataset/union/UnionDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package io.dataease.dto.dataset.union;

import io.dataease.base.domain.DatasetTable;
import lombok.Data;

import java.util.List;

/**
* @Author gin
* @Date 2021/12/1 3:48 下午
*/
@Data
public class UnionDTO {
private DatasetTable currentDs;
private List<String> currentDsField;
private List<UnionDTO> childrenDs;
private UnionParamDTO unionToParent;
private int allChildCount;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package io.dataease.dto.dataset.union;

import io.dataease.base.domain.DatasetTableField;
import lombok.Data;

/**
* @Author gin
* @Date 2021/12/1 3:54 下午
*/
@Data
public class UnionItemDTO {
private DatasetTableField parentField;
private DatasetTableField currentField;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package io.dataease.dto.dataset.union;

import lombok.Data;

import java.util.List;

/**
* @Author gin
* @Date 2021/12/1 3:53 下午
*/
@Data
public class UnionParamDTO {
private String unionType;
private List<UnionItemDTO> unionFields;
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,21 @@
import io.dataease.commons.utils.CommonBeanFactory;
import io.dataease.commons.utils.LogUtil;
import io.dataease.controller.request.chart.*;
import io.dataease.controller.request.datasource.DatasourceRequest;
import io.dataease.controller.response.ChartDetail;
import io.dataease.controller.response.DataSetDetail;
import io.dataease.provider.datasource.DatasourceProvider;
import io.dataease.provider.ProviderFactory;
import io.dataease.controller.request.datasource.DatasourceRequest;
import io.dataease.service.datasource.DatasourceService;
import io.dataease.dto.chart.*;
import io.dataease.dto.dataset.DataSetTableUnionDTO;
import io.dataease.dto.dataset.DataTableInfoDTO;
import io.dataease.i18n.Translator;
import io.dataease.listener.util.CacheUtils;
import io.dataease.provider.ProviderFactory;
import io.dataease.provider.datasource.DatasourceProvider;
import io.dataease.provider.query.QueryProvider;
import io.dataease.service.dataset.DataSetTableFieldsService;
import io.dataease.service.dataset.DataSetTableService;
import io.dataease.service.dataset.DataSetTableUnionService;
import io.dataease.service.datasource.DatasourceService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -162,9 +162,10 @@ public ChartViewWithBLOBs get(String id) {
}

public ChartViewDTO getOneWithPermission(String id) {
String userId = AuthUtils.getUser()!=null?String.valueOf(AuthUtils.getUser().getUserId()):"NONE";
return extChartViewMapper.searchOneWithPrivileges(userId,id);
String userId = AuthUtils.getUser() != null ? String.valueOf(AuthUtils.getUser().getUserId()) : "NONE";
return extChartViewMapper.searchOneWithPrivileges(userId, id);
}

public void delete(String id) {
chartViewMapper.deleteByPrimaryKey(id);
}
Expand Down Expand Up @@ -365,6 +366,22 @@ public ChartViewDTO calcData(ChartViewDTO view, ChartExtRequest requestList, boo
DataTableInfoDTO dt = new Gson().fromJson(table.getInfo(), DataTableInfoDTO.class);
List<DataSetTableUnionDTO> list = dataSetTableUnionService.listByTableId(dt.getList().get(0).getTableId());
String sql = dataSetTableService.getCustomSQLDatasource(dt, list, ds);
if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType()) || StringUtils.equalsIgnoreCase("liquid", view.getType())) {
datasourceRequest.setQuery(qp.getSQLSummaryAsTmp(sql, yAxis, customFilter, extFilterList, view));
} else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
datasourceRequest.setQuery(qp.getSQLAsTmpStack(sql, xAxis, yAxis, customFilter, extFilterList, extStack, view));
} else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) {
datasourceRequest.setQuery(qp.getSQLAsTmpScatter(sql, xAxis, yAxis, customFilter, extFilterList, extBubble, view));
} else if (StringUtils.equalsIgnoreCase("table-info", view.getType())) {
datasourceRequest.setQuery(qp.getSQLAsTmpTableInfo(sql, xAxis, customFilter, extFilterList, ds, view));
} else {
datasourceRequest.setQuery(qp.getSQLAsTmp(sql, xAxis, yAxis, customFilter, extFilterList, view));
}
} else if (StringUtils.equalsIgnoreCase(table.getType(), "union")) {
DataTableInfoDTO dt = new Gson().fromJson(table.getInfo(), DataTableInfoDTO.class);
Map<String, Object> sqlMap = dataSetTableService.getUnionSQLDatasource(dt, ds);
String sql = (String) sqlMap.get("sql");

if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType()) || StringUtils.equalsIgnoreCase("liquid", view.getType())) {
datasourceRequest.setQuery(qp.getSQLSummaryAsTmp(sql, yAxis, customFilter, extFilterList, view));
} else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) {
Expand Down
Loading

0 comments on commit 408a796

Please sign in to comment.