修改标签管理字典配置列表接口

This commit is contained in:
梁琦涛
2024-08-20 17:13:48 +08:00
parent f5f9ea915f
commit b7b2f5c16e
2 changed files with 71 additions and 1 deletions
@@ -150,11 +150,78 @@ public class SysDictItemController {
@ApiOperationSupport(order = 2)
@ApiOperation(value = "查询字典内容树形列表")
@GetMapping("/treeList")
public Result<Page<SysDictItem>> queryTreeList(SysDictItem sysDictItem,
public Result<Page<Tree<String>>> queryTreeList(SysDictItem sysDictItem,
HttpServletRequest req,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
Page<SysDictItem> page = new Page<>(pageNo, pageSize);
QueryWrapper<SysDictItem> queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap());
Page<SysDictItem> pageList = sysDictItemService.page(page, queryWrapper);
List<SysDictItem> sysDictItems = pageList.getRecords();
List<String> rootIds = sysDictItems.stream().map(SysDictItem::getId).collect(Collectors.toList());
// 递归查询子节点
queryChildrenNode(sysDictItems, rootIds);
// 重新获取ids
List<String> idList = sysDictItems.stream().map(SysDictItem::getId).collect(Collectors.toList());
//当查询结果中有数据的父级不存在时,赋值父级id为"0"
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) -> {
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,"dictId","parentId","itemText","itemValue","enName","description","sortOrder","status","isReadOnly");
for (String s : map.keySet()) {
tree.putExtra(s, map.get(s));
}
});
Page<Tree<String>> treePage = new Page<>(pageNo, pageSize);
if (treeNodes == null){
treeNodes = new ArrayList<>();
}
treePage.setRecords(treeNodes);
treePage.setTotal(pageList.getTotal());
return Result.OK(treePage);
}
/**
* @功能:查询字典数据树形列表
* @param sysDictItem
* @param req
* @return
*/
@ApiOperationSupport(order = 2)
@ApiOperation(value = "查询字典内容树形列表")
@GetMapping("/treeListByTag")
public Result<Page<SysDictItem>> queryTreeListBytag(SysDictItem sysDictItem,
HttpServletRequest req,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
QueryWrapper<SysDictItem> queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap());
queryWrapper.select("del_flag","description","dict_id","en_name","id","is_read_only","is_tag_dict","item_text",
"item_value","item_text as name","parent_id as pId","parent_id","sort_order","status");
List<SysDictItem> listSysDictItem = sysDictItemService.list(queryWrapper);
List<SysDictItem> listAll = new ArrayList<>();
// 树形查询手动封装分页
@@ -175,6 +175,9 @@ public class SysDictItem implements TreeNode {
@TableField(exist = false)
private String dictCode;
@TableField(exist = false)
private String name;
/**
* 层级
*/