Merge remote-tracking branch 'origin/master'

This commit is contained in:
liao
2023-08-25 13:58:23 +08:00
3 changed files with 30 additions and 4 deletions
@@ -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());
idList.add("0");
//赋值pId
sysDictItems.forEach(i ->{
String parentId = i.getParentId();
if (idList.contains(parentId)) {
i.setPId(parentId);
}else {
i.setPId("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());
tree.setParentId(treeNode.getParentId());
String id = treeNode.getId();
tree.setId(id);
tree.setParentId(treeNode.getPId());
tree.setWeight(treeNode.getSortOrder());
tree.setName(treeNode.getItemText());
// 扩展属性 ...
Map<String, Object> map = BeanUtil.beanToMap(treeNode);
Map<String, Object> map = BeanUtil.beanToMap(treeNode,"dictId","parentId","itemText","itemValue","enName","description","sortOrder","status");
for (String s : map.keySet()) {
tree.putExtra(s, map.get(s));
}
});
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(treeNodes,SerializerFeature.WriteMapNullValue));
return Result.OK(jsonArray != null ? jsonArray : new JSONArray());
}
@@ -43,6 +43,11 @@ public class SysDictItem implements Serializable {
* 父级id
*/
private String parentId;
/**
* 父级id(树形结构使用)
*/
@TableField(exist = false)
private String pId;
/**
* 字典项文本
@@ -4,4 +4,6 @@ tag.add.\u5B57\u6BB5\u540D\u79F0\u592A\u957F=\u60A8\u8BBE\u7F6E\u7684\u5B57\u6BB
tag.delete.\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u5305\u542B\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u4FEE\u6539
tag.edit.\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664=\u56FA\u5B9A\u5B57\u6BB5,\u4E0D\u53EF\u5220\u9664
tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5
tag.edit.\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5=\u5C5E\u6027\u5DF2\u5B58\u5728,\u8BF7\u68C0\u67E5
message.ok=\u64CD\u4F5C\u6210\u529F
message.error=\u64CD\u4F5C\u5931\u8D25