From b47d4a7accabce974e19d2a1ffb3c5c67507d74b Mon Sep 17 00:00:00 2001 From: wangwh <2397901735@qq.com> Date: Wed, 28 Aug 2024 15:11:59 +0800 Subject: [PATCH] 1、组织架构的接口 2、事项登记接口 --- dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java | 71 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java index ab91fd3..3734f66 100644 --- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java +++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctrole/service/CtRolefunService.java @@ -4,9 +4,14 @@ import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; import cn.huge.module.client.api.impl.UtilsClientImpl; +import cn.huge.module.constant.BaseConsts; import cn.huge.module.ctrole.dao.mapper.CtRolefunMapper; import cn.huge.module.ctrole.domain.po.CtRolefun; +import cn.huge.module.ctuser.domain.bo.RoleTreeBO; +import cn.huge.module.cust.constant.UserBaseConsts; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Maps; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; @@ -17,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -130,4 +136,69 @@ } } + /** + * 查询角色树形结构 + * @param roleId 角色编号 + * @return List<RoleTreeBO> 树形结构 + */ + public List<RoleTreeBO> getRolefunTree(String roleId){ + //查询所有的关系 + Map<String, Object> terms = Maps.newHashMap(); + terms.put("roleId",roleId); + List<CtRolefun> rolefuns = mapper.listTerms(terms); + List<CtRolefun> list = new ArrayList<>(); + List<RoleTreeBO> treeBOS = new ArrayList<>(); + if (rolefuns.size() > 0) { + //第一级菜单集合 + for (int i = 0; i < rolefuns.size(); i++) { + // 一级菜单没有parentId + if (BaseConsts.ROOT.equals(rolefuns.get(i).getParentId())) { + list.add(rolefuns.get(i)); + } + } + // 为一级菜单设置子菜单,getChild是递归调用的 + for (CtRolefun rolefun : list) { + RoleTreeBO treeBO = new RoleTreeBO(); + treeBO.setLabel(rolefun.getPowerName()); + treeBO.setValue(rolefun.getPowerId()); + treeBO.setLabelType(rolefun.getPowerType()); + treeBO.setAppClient(rolefun.getAppClient()); + treeBO.setPowerTag(rolefun.getPowerTag()); + treeBO.setPowerUrl(rolefun.getPowerUrl()); + treeBO.setPowerIcon(rolefun.getPowerIcon()); + treeBO.setChildren(getChild(rolefun.getPowerId(), rolefuns)); + treeBOS.add(treeBO); + } + } + return treeBOS; + } + + /** + * 递归查找子菜单 + * @param id 当前菜单id + * @param ctRolefuns 要查找的列表 + * @return List<TreeBO> 树形列表集合 + */ + private List<RoleTreeBO> getChild(String id, List<CtRolefun> ctRolefuns) { + // 子菜单 + List<RoleTreeBO> childList = new ArrayList<>(); + for (CtRolefun rolefun : ctRolefuns) { + // 遍历所有节点,将父菜单id与传过来的id比较 + if (StringUtils.isNotBlank(rolefun.getParentId())) { + if (rolefun.getParentId().equals(id)) { + RoleTreeBO roleTree = new RoleTreeBO(); + roleTree.setLabel(rolefun.getPowerName()); + roleTree.setValue(rolefun.getPowerId()); + roleTree.setLabelType(rolefun.getPowerType()); + roleTree.setAppClient(rolefun.getAppClient()); + roleTree.setPowerTag(rolefun.getPowerTag()); + roleTree.setPowerUrl(rolefun.getPowerUrl()); + roleTree.setPowerIcon(rolefun.getPowerIcon()); + roleTree.setChildren(getChild(rolefun.getPowerId(), ctRolefuns)); + childList.add(roleTree); + } + } + } + return childList; + } } -- Gitblit v1.8.0