diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartGroupMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartGroupMapper.xml index 111ae9cab0..dfe3e343ed 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartGroupMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartGroupMapper.xml @@ -37,6 +37,12 @@ and chart_group.create_time = #{createTime,jdbcType=BIGINT} + + and id in + + #{item} + + order by ${sort} diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml index 1728fd92d4..66f0e6cb9b 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml @@ -39,6 +39,9 @@ and scene_id = #{sceneId,jdbcType=VARCHAR} + + and name like CONCAT('%', #{name},'%') + order by ${sort} diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetGroupMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetGroupMapper.xml index 5a881f4bf2..88ef56c5d3 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetGroupMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetGroupMapper.xml @@ -37,6 +37,12 @@ and dataset_group.create_time = #{createTime,jdbcType=BIGINT} + + and id in + + #{item} + + order by ${sort} diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml index 77f6be94d5..be315eb38d 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml @@ -45,6 +45,9 @@ and scene_id = #{sceneId,jdbcType=VARCHAR} + + and name like CONCAT('%', #{name},'%') + and mode = #{mode,jdbcType=INTEGER} diff --git a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java index d84402a9a6..ad43882cc3 100644 --- a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java +++ b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java @@ -4,7 +4,9 @@ import io.dataease.base.domain.ChartViewWithBLOBs; import io.dataease.commons.utils.AuthUtils; import io.dataease.controller.request.chart.ChartExtRequest; import io.dataease.controller.request.chart.ChartViewRequest; +import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.dto.chart.ChartViewDTO; +import io.dataease.dto.dataset.DataSetTableDTO; import io.dataease.service.chart.ChartViewService; import org.springframework.web.bind.annotation.*; @@ -63,7 +65,7 @@ public class ChartViewController { } @GetMapping("searchAdviceSceneId/{panelId}") - public String searchAdviceSceneId(@PathVariable String panelId){ + public String searchAdviceSceneId(@PathVariable String panelId) { return chartViewService.searchAdviceSceneId(panelId); } @@ -71,10 +73,16 @@ public class ChartViewController { public ChartViewDTO getOneWithPermission(@PathVariable String id, @RequestBody ChartExtRequest requestList) throws Exception { //如果能获取用户 则添加对应的权限 ChartViewDTO dto = chartViewService.getData(id, requestList); - if(dto!=null && AuthUtils.getUser()!=null){ - ChartViewDTO permissionDto = chartViewService.getOneWithPermission(dto.getId()); + if (dto != null && AuthUtils.getUser() != null) { + ChartViewDTO permissionDto = chartViewService.getOneWithPermission(dto.getId()); dto.setPrivileges(permissionDto.getPrivileges()); } return dto; } + + + @PostMapping("search") + public List search(@RequestBody ChartViewRequest chartViewRequest) { + return chartViewService.search(chartViewRequest); + } } diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java index 37d921e8d4..2ab3bd8075 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableController.java @@ -108,4 +108,9 @@ public class DataSetTableController { public Boolean checkDorisTableIsExists(@PathVariable String id) throws Exception { return dataSetTableService.checkDorisTableIsExists(id); } + + @PostMapping("search") + public List search(@RequestBody DataSetTableRequest dataSetTableRequest) { + return dataSetTableService.search(dataSetTableRequest); + } } diff --git a/backend/src/main/java/io/dataease/controller/request/chart/ChartGroupRequest.java b/backend/src/main/java/io/dataease/controller/request/chart/ChartGroupRequest.java index 8ddcd1958c..624380ba30 100644 --- a/backend/src/main/java/io/dataease/controller/request/chart/ChartGroupRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/chart/ChartGroupRequest.java @@ -3,9 +3,12 @@ package io.dataease.controller.request.chart; import io.dataease.base.domain.ChartGroup; import lombok.Data; +import java.util.Set; + @Data public class ChartGroupRequest extends ChartGroup { private String sort; private String userId; + private Set ids; } diff --git a/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java index cde03a2ffc..430fb22f1c 100644 --- a/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java +++ b/backend/src/main/java/io/dataease/controller/request/dataset/DataSetGroupRequest.java @@ -3,6 +3,9 @@ package io.dataease.controller.request.dataset; import io.dataease.base.domain.DatasetGroup; import lombok.Data; +import java.util.List; +import java.util.Set; + /** * @Author gin * @Date 2021/2/22 1:30 下午 @@ -12,4 +15,6 @@ public class DataSetGroupRequest extends DatasetGroup { private String sort; private String userId; + + private Set ids; } diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 84dbbf0fd7..85bf03df55 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -15,11 +15,15 @@ import io.dataease.controller.request.chart.ChartExtFilterRequest; import io.dataease.controller.request.chart.ChartExtRequest; import io.dataease.controller.request.chart.ChartGroupRequest; import io.dataease.controller.request.chart.ChartViewRequest; +import io.dataease.controller.request.dataset.DataSetGroupRequest; +import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.datasource.provider.DatasourceProvider; import io.dataease.datasource.provider.ProviderFactory; import io.dataease.datasource.request.DatasourceRequest; import io.dataease.datasource.service.DatasourceService; import io.dataease.dto.chart.*; +import io.dataease.dto.dataset.DataSetGroupDTO; +import io.dataease.dto.dataset.DataSetTableDTO; import io.dataease.dto.dataset.DataSetTableUnionDTO; import io.dataease.dto.dataset.DataTableInfoDTO; import io.dataease.i18n.Translator; @@ -110,6 +114,41 @@ public class ChartViewService { return group; } + public List search(ChartViewRequest chartViewRequest) { + String userId = String.valueOf(AuthUtils.getUser().getUserId()); + chartViewRequest.setUserId(userId); + List ds = extChartViewMapper.search(chartViewRequest); + if (CollectionUtils.isEmpty(ds)) { + return ds; + } + + TreeSet ids = new TreeSet<>(); + ds.forEach(ele -> { + ele.setIsLeaf(true); + ele.setPid(ele.getSceneId()); + ids.add(ele.getPid()); + }); + + ChartGroupRequest chartGroupRequest = new ChartGroupRequest(); + chartGroupRequest.setUserId(userId); + chartGroupRequest.setIds(ids); + List search = extChartGroupMapper.search(chartGroupRequest); + while (CollectionUtils.isNotEmpty(search)) { + ids.clear(); + search.forEach(ele -> { + ChartViewDTO dto = new ChartViewDTO(); + BeanUtils.copyBean(dto, ele); + dto.setIsLeaf(false); + dto.setType("group"); + ds.add(dto); + ids.add(ele.getPid()); + }); + chartGroupRequest.setIds(ids); + search = extChartGroupMapper.search(chartGroupRequest); + } + return ds; + } + public ChartViewWithBLOBs get(String id) { return chartViewMapper.selectByPrimaryKey(id); } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 0991fbd679..5c61f458e0 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -12,6 +12,7 @@ import io.dataease.commons.constants.JobStatus; import io.dataease.commons.constants.ScheduleType; import io.dataease.commons.constants.TaskStatus; import io.dataease.commons.utils.*; +import io.dataease.controller.request.chart.ChartGroupRequest; import io.dataease.controller.request.dataset.DataSetGroupRequest; import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.controller.request.dataset.DataSetTaskRequest; @@ -232,6 +233,41 @@ public class DataSetTableService { return group; } + public List search(DataSetTableRequest dataSetTableRequest) { + String userId = String.valueOf(AuthUtils.getUser().getUserId()); + dataSetTableRequest.setUserId(userId); + List ds = extDataSetTableMapper.search(dataSetTableRequest); + if (CollectionUtils.isEmpty(ds)) { + return ds; + } + + TreeSet ids = new TreeSet<>(); + ds.forEach(ele -> { + ele.setIsLeaf(true); + ele.setPid(ele.getSceneId()); + ids.add(ele.getPid()); + }); + + DataSetGroupRequest dataSetGroupRequest = new DataSetGroupRequest(); + dataSetGroupRequest.setUserId(userId); + dataSetGroupRequest.setIds(ids); + List search = extDataSetGroupMapper.search(dataSetGroupRequest); + while (CollectionUtils.isNotEmpty(search)) { + ids.clear(); + search.forEach(ele -> { + DataSetTableDTO dto = new DataSetTableDTO(); + BeanUtils.copyBean(dto, ele); + dto.setIsLeaf(false); + dto.setType("group"); + ds.add(dto); + ids.add(ele.getPid()); + }); + dataSetGroupRequest.setIds(ids); + search = extDataSetGroupMapper.search(dataSetGroupRequest); + } + return ds; + } + public DatasetTable get(String id) { return datasetTableMapper.selectByPrimaryKey(id); } diff --git a/frontend/src/views/chart/group/Group.vue b/frontend/src/views/chart/group/Group.vue index e533378f31..6fae053c64 100644 --- a/frontend/src/views/chart/group/Group.vue +++ b/frontend/src/views/chart/group/Group.vue @@ -891,14 +891,18 @@ export default { searchTree(val) { const queryCondition = { - withExtend: 'parent', - modelType: 'chart', + // withExtend: 'parent', + // modelType: 'chart', name: val } - authModel(queryCondition).then(res => { - // this.highlights(res.data) + // authModel(queryCondition).then(res => { + // // this.highlights(res.data) + // this.tData = this.buildTree(res.data) + // // console.log(this.tData) + // }) + + post('/chart/view/search', queryCondition).then(res => { this.tData = this.buildTree(res.data) - // console.log(this.tData) }) }, @@ -910,8 +914,8 @@ export default { const roots = [] arrs.forEach(el => { // 判断根节点 ### - el.type = el.modelInnerType - el.isLeaf = el.leaf + // el.type = el.modelInnerType + // el.isLeaf = el.leaf if (el[this.treeProps.parentId] === null || el[this.treeProps.parentId] === 0 || el[this.treeProps.parentId] === '0') { roots.push(el) return diff --git a/frontend/src/views/dataset/group/Group.vue b/frontend/src/views/dataset/group/Group.vue index dd8292be32..19f8db239a 100644 --- a/frontend/src/views/dataset/group/Group.vue +++ b/frontend/src/views/dataset/group/Group.vue @@ -856,14 +856,18 @@ export default { searchTree(val) { const queryCondition = { - withExtend: 'parent', - modelType: 'dataset', + // withExtend: 'parent', + // modelType: 'dataset', name: val } - authModel(queryCondition).then(res => { - // this.highlights(res.data) + // authModel(queryCondition).then(res => { + // // this.highlights(res.data) + // this.tData = this.buildTree(res.data) + // // console.log(this.tData) + // }) + + post('/dataset/table/search', queryCondition).then(res => { this.tData = this.buildTree(res.data) - // console.log(this.tData) }) }, @@ -875,8 +879,8 @@ export default { const roots = [] arrs.forEach(el => { // 判断根节点 ### - el.type = el.modelInnerType - el.isLeaf = el.leaf + // el.type = el.modelInnerType + // el.isLeaf = el.leaf if (el[this.treeProps.parentId] === null || el[this.treeProps.parentId] === 0 || el[this.treeProps.parentId] === '0') { roots.push(el) return