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