update 树型字典分页
This commit is contained in:
+38
-7
@@ -26,6 +26,7 @@ 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.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
@@ -70,7 +71,7 @@ public class SysDictItemController {
|
||||
@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) {
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
|
||||
Result<IPage<SysDictItem>> result = new Result<>();
|
||||
QueryWrapper<SysDictItem> queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap());
|
||||
queryWrapper.orderByAsc("sort_order");
|
||||
@@ -89,12 +90,23 @@ public class SysDictItemController {
|
||||
*/
|
||||
@ApiOperation(value = "查询字典内容树形列表")
|
||||
@GetMapping("/treeList")
|
||||
public Result<JSONArray> queryTreeList(SysDictItem sysDictItem,
|
||||
HttpServletRequest req) {
|
||||
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);
|
||||
// 只查父节点
|
||||
sysDictItem.setParentId("0");
|
||||
QueryWrapper<SysDictItem> queryWrapper = QueryGenerator.initQueryWrapper(sysDictItem, req.getParameterMap());
|
||||
List<SysDictItem> sysDictItems = sysDictItemService.list(queryWrapper);
|
||||
//当查询结果中有数据的父级不存在时,赋值父级id为"0"
|
||||
//List<SysDictItem> sysDictItems = sysDictItemService.list(queryWrapper);
|
||||
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 ->{
|
||||
@@ -127,9 +139,28 @@ public class SysDictItemController {
|
||||
tree.putExtra(s, map.get(s));
|
||||
}
|
||||
});
|
||||
Page<Tree<String>> treePage = new Page<>(pageNo, pageSize);
|
||||
treePage.setRecords(treeNodes);
|
||||
treePage.setTotal(pageList.getTotal());
|
||||
return Result.OK(treePage);
|
||||
}
|
||||
|
||||
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(treeNodes,SerializerFeature.WriteMapNullValue));
|
||||
return Result.OK(jsonArray != null ? jsonArray : new JSONArray());
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/2 14:04
|
||||
* @Description: 递归查询子节点
|
||||
**/
|
||||
private void queryChildrenNode(List<SysDictItem> sysDictItems, List<String> idList) {
|
||||
if (CollectionUtils.isNotEmpty(idList)) {
|
||||
LambdaQueryWrapper<SysDictItem> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysDictItem::getParentId, idList);
|
||||
List<SysDictItem> dictItemChildren = sysDictItemService.list(queryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(dictItemChildren)) {
|
||||
List<String> idChildren = dictItemChildren.stream().map(SysDictItem::getId).collect(Collectors.toList());
|
||||
sysDictItems.addAll(dictItemChildren);
|
||||
queryChildrenNode(sysDictItems, idChildren);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "选择框查询字典内容树形列表")
|
||||
|
||||
Reference in New Issue
Block a user