| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | * @Description 客户角色菜单权限表业务逻辑处理 |
| | | * @company hugeinfo |
| | | * @author liyj |
| | | * @Time 2024-08-17 15:33:41 |
| | | * @Time 2024-08-19 20:04:19 |
| | | * @version 1.0.0 |
| | | */ |
| | | @Slf4j |
| | |
| | | */ |
| | | public void saveCtRolefun(CtRolefun ctRolefun){ |
| | | try{ |
| | | Date nowDate = DateUtils.getMowDate(); |
| | | Date nowDate = DateUtils.getNowDate(); |
| | | // 判断是否新增 |
| | | if (IdUtils.checkNewId(ctRolefun.getId())){ |
| | | ctRolefun.setId(utilsClient.getNewTimeId()); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查询角色树形结构 |
| | | * @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; |
| | | } |
| | | } |