@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PermissionDto {
/**
* 主键
*/
private long permSeq;
/**
* 权限名称
*/
private String name;
/**
* 权限key名
*/
private String permId;
/**
* 父id
*/
private long parentSeq;
/**
*
* 子集
*/
List<PermissionDto> children=null;
}
/**
*获取用户所有的权限
* @return
*/
public List<PermissionDto> getTree(String loginId) {
List<PermissionDto> allList=coreUserDao.getTree(loginId);
List<PermissionDto> treeList=new ArrayList<>();
for (PermissionDto vo :allList){
if (vo.getParentSeq() == 0){
vo.setChildren(getChildrenNode(vo.getPermSeq(), allList));
treeList.add(vo);
}
}
return treeList;
}
/**
* 递归获取父节点下的子节点
* @param permSeq 父节点的ID
* @param treesList 所有菜单树集合
* @return
*/
private List<PermissionDto> getChildrenNode(Long permSeq, List<PermissionDto> treesList) {
List<PermissionDto> newTrees = new ArrayList<>();
for (PermissionDto department : treesList) {
if (department.getParentSeq() == 0) {
continue;
}
if (department.getParentSeq() == permSeq) {
// 递归获取子节点下的子节点,即设置树控件中的children
department.setChildren(getChildrenNode(department.getPermSeq(), treesList));
newTrees.add(department);
}
}
return newTrees;
}