| | |
| | | treeQueryObject.setConditionMap(conditionMap); |
| | | List<Tree> treeList = this.getUIAuthor(treeQueryObject); |
| | | HashMap<String,Tree> allTreeMap = new HashMap<>(); |
| | | Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>(); |
| | | //Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>(); |
| | | if(!CollectionUtil.isEmpty(treeList)){ |
| | | if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){ |
| | | /*if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){ |
| | | String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); |
| | | RoleRightInfo[] rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(uiAuthorDTO.getRoleId(),userName); |
| | | List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos)); |
| | | roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVOO2DTO(roleRightVO),(oldValue,newValue)->oldValue)); |
| | | } |
| | | }*/ |
| | | |
| | | convertTreeDOO2Map(treeList,allTreeMap); |
| | | List<RoleRightDTO> roleRightDTOList = new ArrayList<>(); |
| | | List<Tree> selectTreeList = uiAuthorDTO.getSelectTreeList(); |
| | | getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightVOMap,roleRightDTOList); |
| | | List<Tree> selectTreeList2 = this.authTreeListConvert(selectTreeList); |
| | | getSelectedRoleRightObjs_old(uiAuthorDTO.getRoleId(),selectTreeList2,allTreeMap,roleRightDTOList); |
| | | SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); |
| | | String currentUserName = sessionInfo.getUserId(); |
| | | //boolean isDeveloper = rightControlUtil.isDeveloper(currentUserName); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取筛选后的数据 |
| | | * @param selectTreeList |
| | | */ |
| | | private List<Tree> authTreeListConvert(List<Tree> selectTreeList){ |
| | | |
| | | // 创建一个包含另一个集合中满足条件的 oid 的集合 |
| | | List<String> validOids = selectTreeList.stream() |
| | | .filter(Tree::isChecked) // checked 为 true |
| | | .map(Tree::getOid) // 提取 oid |
| | | .collect(Collectors.toList()); |
| | | |
| | | return selectTreeList.stream() |
| | | .filter(tree -> tree.isChecked() && !validOids.contains(tree.getParentId())) // 过滤条件 |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | /** |
| | | *根据权限计算上下权限 |
| | | * @param roleOid |
| | | * @param selectTreeList |
| | | * @param allTreeMap |
| | | * @param roleRightDTOList |
| | | */ |
| | | private void getSelectedRoleRightObjs(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, Map<String,RoleRightDTO> allRoleRightDTOMap, List<RoleRightDTO> roleRightDTOList){ |
| | | //Date date=new Date(); |
| | | private void getSelectedRoleRightObjs_old(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, List<RoleRightDTO> roleRightDTOList){ |
| | | Map<String,RoleRightDTO> roleRightDTOMap = new HashMap<>(); |
| | | if(!CollectionUtil.isEmpty(selectTreeList)){ |
| | | selectTreeList.stream().forEach(tree -> { |
| | |
| | | }else{ |
| | | roleRightDTO.setRightType((short) 2); |
| | | } |
| | | roleRightDTO.setRightValue(1);// 权限值,没有操作的模块权限值存储为0 |
| | | roleRightDTO.setRightValue(countRightValue(parentNode,false));// 权限值,没有操作的模块权限值存储为0 |
| | | roleRightDTO.setRoleId(roleOid);//角色ID |
| | | roleRightDTO.setCreateUser(currentUserName);//创建者 |
| | | roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),""));//创建时间 |
| | |
| | | */ |
| | | private long countRightValue(Tree node,boolean isAll){ |
| | | long value = 0; |
| | | for(int i = 0;i < node.getChildren().size();i++){ |
| | | for(int i = 0; i < node.getChildren().size(); i++){ |
| | | Tree childNode = (Tree)node.getChildren().get(i); |
| | | if(isAll && node.getData() instanceof PLTabButton ){ |
| | | PLTabButton obj = (PLTabButton)node.getData(); |
| | | if(isAll || node.getData() instanceof PLTabButton ){ |
| | | PLTabButton obj = (PLTabButton)childNode.getData(); |
| | | value += (long)Math.pow(2, obj.plSeq);//累计加上各个操作的权限值 |
| | | } |
| | | } |