| | |
| | | import com.vci.ubcs.starter.web.util.LangBaseUtil; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import com.vci.ubcs.system.cache.NacosConfigCache; |
| | | import com.vci.ubcs.system.feign.ISysClient; |
| | | import org.apache.poi.hssf.util.HSSFColor; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | private IBtmTypeClient btmTypeClient; |
| | | |
| | | @Resource |
| | | private CommonsMapper commonsMapper; |
| | | private ISysClient sysClient; |
| | | |
| | | /** |
| | | * 日志 |
| | |
| | | return s.getId() + " " + s.getName() + (FrameworkDataLCStatus.DISABLED.getValue().equalsIgnoreCase(s |
| | | .getLcStatus()) ? (" 【停用】 ") : ""); |
| | | }); |
| | | |
| | | Iterator var6 = tree.listIterator(); |
| | | while(var6.hasNext()){ |
| | | Tree trees = (Tree) var6.next(); |
| | | boolean checkHasChild=codeClassifyMapper.checkHasChild(trees.getOid()); |
| | | if(checkHasChild){ |
| | | trees.setLeaf(false); |
| | | }else{ |
| | | trees.setLeaf(true); |
| | | //超管显示所有分类 |
| | | if(VciBaseUtil.checkAdminTenant()){ |
| | | Iterator var6 = tree.listIterator(); |
| | | while(var6.hasNext()){ |
| | | Tree trees = (Tree) var6.next(); |
| | | boolean checkHasChild=codeClassifyMapper.checkHasChild(trees.getOid()); |
| | | if(checkHasChild){ |
| | | trees.setLeaf(false); |
| | | }else{ |
| | | trees.setLeaf(true); |
| | | } |
| | | } |
| | | }else { |
| | | // 那些分类具备查看权限 |
| | | R<List<String>> viewClassByRoleIds = sysClient.getViewClassByRoleIds(Arrays.asList(AuthUtil.getUser().getRoleId().split(","))); |
| | | // 请求失败或者请求得到的具备查看权限的分类id集合为空 |
| | | if(!viewClassByRoleIds.isSuccess() && !viewClassByRoleIds.getData().isEmpty()){ |
| | | return new ArrayList<>(); |
| | | } |
| | | // 过滤 |
| | | filterTreeNodes(tree,viewClassByRoleIds.getData()); |
| | | } |
| | | return tree; |
| | | } |
| | | |
| | | /** |
| | | * 分类授权过滤掉没有权限的分类 |
| | | * @param trees |
| | | * @param classifyIds |
| | | */ |
| | | private void filterTreeNodes(List<Tree> trees, List<String> classifyIds) { |
| | | Iterator<Tree> iterator = trees.iterator(); |
| | | while (iterator.hasNext()) { |
| | | Tree tree = iterator.next(); |
| | | Boolean checkHasChild = codeClassifyMapper.checkHasChild(tree.getOid()); |
| | | tree.setLeaf(!checkHasChild); |
| | | if (classifyIds.contains(tree.getOid())) { |
| | | // 如果顶层节点存在于 classifyIds 中,直接保留其子节点集合 |
| | | continue; |
| | | } |
| | | if (tree.getChildren() != null && !tree.getChildren().isEmpty()) { |
| | | filterTreeNodes(tree.getChildren(), classifyIds); |
| | | } |
| | | if (!hasMatchingChild(tree, classifyIds)) { |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private boolean hasMatchingChild(Tree tree, List<String> classifyIds) { |
| | | if (classifyIds.contains(tree.getOid())) { |
| | | return true; |
| | | } |
| | | if (tree.getChildren() != null) { |
| | | for (Tree child : tree.getChildren()) { |
| | | if (hasMatchingChild(child, classifyIds)) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询所有上层父节点的oid |
| | | * @param oid |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<String> selectAllParentOid(String oid){ |
| | | if(Func.isBlank(oid)){ |
| | | return new ArrayList<>(); |
| | | } |
| | | return this.codeClassifyMapper.selectAllParentOid(oid); |
| | | } |
| | | |
| | | /** |
| | | * 使用分类主键获取分类相关的所有信息 |
| | | * |
| | | * @param codeClassifyOid 分类的主键 |