|
@@ -273,6 +273,40 @@ public class RoleManagerServiceImpl implements RoleManagerService {
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public ListResourceTreeBySelectRoleCodeRes listResourceTreeBySelectRoleCode(ListResourceTreeBySelectRoleCodeReq listResourceTreeBySelectRoleCodeReq) throws Exception {
|
|
|
+ //1-查询角色树
|
|
|
+ List<UserResource> userResourceList = userResourceMapper.listResourceTreeByRoleCode(listResourceTreeBySelectRoleCodeReq.getRoleCode(),null);
|
|
|
+
|
|
|
+ //构造出参
|
|
|
+ ListResourceTreeBySelectRoleCodeRes res = new ListResourceTreeBySelectRoleCodeRes();
|
|
|
+ List<ListResourceTreeBySelectRoleCodeRes.ResourceBean> resourceBeanList = new ArrayList<>();
|
|
|
+
|
|
|
+ //2-转树形
|
|
|
+ //放一个map,用于快捷查找到list key为父resourceCode
|
|
|
+ Map<String,List<ListResourceTreeBySelectRoleCodeRes.ResourceBean>> resourceListMap = new HashMap<>();
|
|
|
+ //如果父类code为null,那么父list就是顶层list
|
|
|
+ resourceListMap.put(null,resourceBeanList);
|
|
|
+ //开始循环放入,因为查询语句排过序,所以查到的顺序,一定是先父后子
|
|
|
+ for(UserResource resource:userResourceList){
|
|
|
+ //先获取父类列表
|
|
|
+ List<ListResourceTreeBySelectRoleCodeRes.ResourceBean> parentList = resourceListMap.get(resource.getParentResourceCode());
|
|
|
+ //然后放入自己
|
|
|
+ ListResourceTreeBySelectRoleCodeRes.ResourceBean resourceBean = PojoConverterUtils.copy(resource, ListResourceTreeBySelectRoleCodeRes.ResourceBean.class);
|
|
|
+ parentList.add(resourceBean);
|
|
|
+ //如果resourceCode是3位or6位,则需要创建子list
|
|
|
+ if(resourceBean.getResourceCode().length()<=6){
|
|
|
+ resourceBean.setResourceBeanList(new ArrayList<>());
|
|
|
+ resourceListMap.put(resourceBean.getResourceCode(),resourceBean.getResourceBeanList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //放入出参
|
|
|
+ res.setResourceBeanList(resourceBeanList);
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取登录用户需要的页面以及按钮权限
|
|
|
**/
|