update 标签管理-树形查询
This commit is contained in:
+21
-2
@@ -5,10 +5,14 @@ import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
@@ -92,26 +96,41 @@ public class SysDictItemController {
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<SysDictItem> queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap());
|
||||
List<SysDictItem> sysDictItems = sysDictItemService.list(queryWrapper);
|
||||
//当查询结果中有数据的父级不存在时,赋值父级id为"0"
|
||||
List<String> idList = sysDictItems.stream().map(SysDictItem::getId).collect(Collectors.toList());
|
||||
//保存数据中的父级id
|
||||
Map<String, String> map1 = CollStreamUtil.toMap(sysDictItems, SysDictItem::getId, SysDictItem::getParentId);
|
||||
idList.add("0");
|
||||
sysDictItems.forEach(i ->{
|
||||
if (!idList.contains(i.getParentId())) {
|
||||
i.setParentId("0");
|
||||
}
|
||||
});
|
||||
//配置
|
||||
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
|
||||
// 自定义属性名 都要默认值的
|
||||
treeNodeConfig.setWeightKey("sortOrder");
|
||||
treeNodeConfig.setIdKey("id");
|
||||
treeNodeConfig.setParentIdKey("pId");
|
||||
// 最大递归深度
|
||||
treeNodeConfig.setDeep(-1);
|
||||
//转换器
|
||||
List<Tree<String>> treeNodes = TreeUtil.build(sysDictItems, "0", treeNodeConfig,
|
||||
(treeNode, tree) -> {
|
||||
tree.setId(treeNode.getId());
|
||||
String id = treeNode.getId();
|
||||
tree.setId(id);
|
||||
tree.setParentId(treeNode.getParentId());
|
||||
tree.setWeight(treeNode.getSortOrder());
|
||||
tree.setName(treeNode.getItemText());
|
||||
// 扩展属性 ...
|
||||
Map<String, Object> map = BeanUtil.beanToMap(treeNode);
|
||||
Map<String, Object> map = BeanUtil.beanToMap(treeNode,"dictId","itemText","itemValue","enName","description","sortOrder","status");
|
||||
for (String s : map.keySet()) {
|
||||
tree.putExtra(s, map.get(s));
|
||||
}
|
||||
String parentId = map1.get(id);
|
||||
tree.putExtra("parentId",parentId);
|
||||
});
|
||||
|
||||
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(treeNodes,SerializerFeature.WriteMapNullValue));
|
||||
return Result.OK(jsonArray != null ? jsonArray : new JSONArray());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user