fix: tree搜索

This commit is contained in:
junjie 2021-07-31 16:55:34 +08:00
parent e74846a8af
commit 57f131d86d
2 changed files with 28 additions and 4 deletions

View File

@ -117,6 +117,7 @@ public class ChartViewService {
public List<ChartViewDTO> search(ChartViewRequest chartViewRequest) { public List<ChartViewDTO> search(ChartViewRequest chartViewRequest) {
String userId = String.valueOf(AuthUtils.getUser().getUserId()); String userId = String.valueOf(AuthUtils.getUser().getUserId());
chartViewRequest.setUserId(userId); chartViewRequest.setUserId(userId);
chartViewRequest.setSort("name asc");
List<ChartViewDTO> ds = extChartViewMapper.search(chartViewRequest); List<ChartViewDTO> ds = extChartViewMapper.search(chartViewRequest);
if (CollectionUtils.isEmpty(ds)) { if (CollectionUtils.isEmpty(ds)) {
return ds; return ds;
@ -129,6 +130,7 @@ public class ChartViewService {
ids.add(ele.getPid()); ids.add(ele.getPid());
}); });
List<ChartViewDTO> group = new ArrayList<>();
ChartGroupRequest chartGroupRequest = new ChartGroupRequest(); ChartGroupRequest chartGroupRequest = new ChartGroupRequest();
chartGroupRequest.setUserId(userId); chartGroupRequest.setUserId(userId);
chartGroupRequest.setIds(ids); chartGroupRequest.setIds(ids);
@ -140,13 +142,23 @@ public class ChartViewService {
BeanUtils.copyBean(dto, ele); BeanUtils.copyBean(dto, ele);
dto.setIsLeaf(false); dto.setIsLeaf(false);
dto.setType("group"); dto.setType("group");
ds.add(dto); group.add(dto);
ids.add(ele.getPid()); ids.add(ele.getPid());
}); });
chartGroupRequest.setIds(ids); chartGroupRequest.setIds(ids);
search = extChartGroupMapper.search(chartGroupRequest); search = extChartGroupMapper.search(chartGroupRequest);
} }
return ds;
List<ChartViewDTO> res = new ArrayList<>();
Map<String, ChartViewDTO> map = new TreeMap<>();
group.forEach(ele -> map.put(ele.getId(), ele));
Iterator<Map.Entry<String, ChartViewDTO>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
res.add(iterator.next().getValue());
}
res.sort(Comparator.comparing(ChartViewDTO::getName));
res.addAll(ds);
return res;
} }
public ChartViewWithBLOBs get(String id) { public ChartViewWithBLOBs get(String id) {

View File

@ -236,6 +236,7 @@ public class DataSetTableService {
public List<DataSetTableDTO> search(DataSetTableRequest dataSetTableRequest) { public List<DataSetTableDTO> search(DataSetTableRequest dataSetTableRequest) {
String userId = String.valueOf(AuthUtils.getUser().getUserId()); String userId = String.valueOf(AuthUtils.getUser().getUserId());
dataSetTableRequest.setUserId(userId); dataSetTableRequest.setUserId(userId);
dataSetTableRequest.setSort("name asc");
List<DataSetTableDTO> ds = extDataSetTableMapper.search(dataSetTableRequest); List<DataSetTableDTO> ds = extDataSetTableMapper.search(dataSetTableRequest);
if (CollectionUtils.isEmpty(ds)) { if (CollectionUtils.isEmpty(ds)) {
return ds; return ds;
@ -248,6 +249,7 @@ public class DataSetTableService {
ids.add(ele.getPid()); ids.add(ele.getPid());
}); });
List<DataSetTableDTO> group = new ArrayList<>();
DataSetGroupRequest dataSetGroupRequest = new DataSetGroupRequest(); DataSetGroupRequest dataSetGroupRequest = new DataSetGroupRequest();
dataSetGroupRequest.setUserId(userId); dataSetGroupRequest.setUserId(userId);
dataSetGroupRequest.setIds(ids); dataSetGroupRequest.setIds(ids);
@ -259,13 +261,23 @@ public class DataSetTableService {
BeanUtils.copyBean(dto, ele); BeanUtils.copyBean(dto, ele);
dto.setIsLeaf(false); dto.setIsLeaf(false);
dto.setType("group"); dto.setType("group");
ds.add(dto); group.add(dto);
ids.add(ele.getPid()); ids.add(ele.getPid());
}); });
dataSetGroupRequest.setIds(ids); dataSetGroupRequest.setIds(ids);
search = extDataSetGroupMapper.search(dataSetGroupRequest); search = extDataSetGroupMapper.search(dataSetGroupRequest);
} }
return ds;
List<DataSetTableDTO> res = new ArrayList<>();
Map<String, DataSetTableDTO> map = new TreeMap<>();
group.forEach(ele -> map.put(ele.getId(), ele));
Iterator<Map.Entry<String, DataSetTableDTO>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
res.add(iterator.next().getValue());
}
res.sort(Comparator.comparing(DatasetTable::getName));
res.addAll(ds);
return res;
} }
public DatasetTable get(String id) { public DatasetTable get(String id) {