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