角色模板返回树形
This commit is contained in:
@@ -8,6 +8,8 @@ import java.io.Serializable;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
@@ -76,4 +78,6 @@ public class SysRoleTemplate implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Integer pid;
|
private Integer pid;
|
||||||
|
|
||||||
|
private List<SysRoleTemplate> children = new ArrayList<>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,10 @@ import com.czg.market.service.SysRoleTemplateService;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色模板 服务层实现。
|
* 角色模板 服务层实现。
|
||||||
@@ -42,10 +45,28 @@ public class SysRoleTemplateServiceImpl extends ServiceImpl<SysRoleTemplateMappe
|
|||||||
@Override
|
@Override
|
||||||
public List<SysRoleTemplate> listInfo(Long pid) {
|
public List<SysRoleTemplate> listInfo(Long pid) {
|
||||||
QueryWrapper queryWrapper = new QueryWrapper().eq(SysRoleTemplate::getPid, pid);
|
QueryWrapper queryWrapper = new QueryWrapper().eq(SysRoleTemplate::getPid, pid);
|
||||||
if (pid == null) {
|
List<SysRoleTemplate> list = list(queryWrapper);
|
||||||
queryWrapper.isNull(SysRoleTemplate::getPid);
|
|
||||||
}
|
// 转成 map,便于通过 id 找节点
|
||||||
return list(queryWrapper);
|
Map<Integer, SysRoleTemplate> map = list.stream()
|
||||||
|
.collect(Collectors.toMap(SysRoleTemplate::getId, v -> v));
|
||||||
|
|
||||||
|
// 存根节点
|
||||||
|
List<SysRoleTemplate> roots = new ArrayList<>();
|
||||||
|
|
||||||
|
list.forEach(item -> {
|
||||||
|
if (item.getPid() == null || item.getPid() == 0) {
|
||||||
|
// 这是根节点
|
||||||
|
roots.add(item);
|
||||||
|
} else {
|
||||||
|
// 找父节点
|
||||||
|
SysRoleTemplate parent = map.get(item.getPid());
|
||||||
|
if (parent != null) {
|
||||||
|
parent.getChildren().add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return roots;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user