public List<Permission> selectAll(){
LambdaQueryWrapper<Permission> wrapper = new LambdaQueryWrapper<>();
List<Permission> list = permissionMapper.selectList(wrapper);
return list;
}
3-递归设置子节点方法
public List<Permission> setChild(List<Permission> list){
if (CollUtil.isEmpty(list)){
return null;
}
for (Permission permission : list) {
List<Permission> temp = new ArrayList<>();
for (Permission p : list) {
if (p.getParentId().equals(permission.getId())){
temp.add(p);
}
}
setChild(temp);
permission.setChild(temp);
}
return list;
}
4-手动分页
public Page<Permission> page(Permission permission) {
//分页工具,获取前端传来的分页参数
Page page = ParamsUtils.getPage();
long current = page.getCurrent();
long size = page.getSize();
//索引起点
long start = ((current - 1) * size);
//索引截至点
long end = start + size;
//查询所有
List<Permission> list = selectAll();
//设置子节点
List<Permission> permissions = setChild(list);
//只要父级点
List<Permission> collect = permissions.stream().filter(p -> p.getParentId().equals(0l)).collect(Collectors.toList());
//手动分页
List<Permission> records = new ArrayList<>();
if (end >= collect.size()){
end = collect.size();
}
for (long i = start; i < end; i++) {
records.add(collect.get((int) i));
}
page.setRecords(records);
page.setTotal(collect.size());
return page;
}
5-分页工具类
public class ParamsUtils {
public static Page getPage(){
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes servlet = (ServletRequestAttributes) attributes;
HttpServletRequest request = servlet.getRequest();
Long current = Convert.toLong(request.getParameter("current"));
Long size = Convert.toLong(request.getParameter("size"));
Page page = Page.of(current, size);
return page;
}
}