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 | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 1 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 1445e02..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;
@@ -116,7 +122,7 @@
*/
public void saveCtRolefun(CtRolefun ctRolefun){
try{
- Date nowDate = DateUtils.getMowDate();
+ Date nowDate = DateUtils.getNowDate();
// 判断是否新增
if (IdUtils.checkNewId(ctRolefun.getId())){
ctRolefun.setId(utilsClient.getNewTimeId());
@@ -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