add 查询树形字典

This commit is contained in:
lijiarao
2023-08-24 15:39:11 +08:00
parent 913928d518
commit d9168579de
3 changed files with 70 additions and 10 deletions
@@ -3,12 +3,28 @@ package com.jero.modules.system.controller;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.LanguageEnum;
import com.jero.common.util.MessageUtils;
import com.jero.modules.system.util.TreeUtils;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -50,6 +66,7 @@ public class SysDictItemController {
* @param req
* @return
*/
@ApiOperation(value = "查询字典内容列表")
@GetMapping("/page")
public Result<IPage<SysDictItem>> queryPageList(SysDictItem sysDictItem, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
@@ -63,6 +80,42 @@ public class SysDictItemController {
return result;
}
/**
* @功能:查询字典数据树形列表
* @param sysDictItem
* @param req
* @return
*/
@ApiOperation(value = "查询字典内容树形列表")
@GetMapping("/treeList")
public Result<JSONArray> queryTreeList(SysDictItem sysDictItem,
HttpServletRequest req) {
QueryWrapper<SysDictItem> queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap());
List<SysDictItem> sysDictItems = sysDictItemService.list(queryWrapper);
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortOrder");
treeNodeConfig.setIdKey("id");
// 最大递归深度
treeNodeConfig.setDeep(-1);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(sysDictItems, "0", treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortOrder());
tree.setName(treeNode.getItemText());
// 扩展属性 ...
Map<String, Object> map = BeanUtil.beanToMap(treeNode);
for (String s : map.keySet()) {
tree.putExtra(s, map.get(s));
}
});
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(treeNodes,SerializerFeature.WriteMapNullValue));
return Result.OK(jsonArray);
}
/**
* @功能:新增
* @return
@@ -39,6 +39,10 @@ public class SysDictItem implements Serializable {
* 字典id
*/
private String dictId;
/**
* 父级id
*/
private String parentId;
/**
* 字典项文本