From 79dd20bae9e8af17d5d66b67da4ca6ebc56cd9dd Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 26 六月 2024 11:15:43 +0800
Subject: [PATCH] 用户管理:部门接口修改上传

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java |   55 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 38 insertions(+), 17 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
index abc70d4..8ba719e 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
@@ -3,6 +3,8 @@
 import com.alibaba.fastjson.JSONObject;
 import com.vci.corba.common.PLException;
 import com.vci.corba.framework.data.FunctionInfo;
+import com.vci.corba.framework.data.RoleRightInfo;
+import com.vci.corba.omd.data.BusinessObject;
 import com.vci.corba.portal.data.PLUILayout;
 import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
 import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum;
@@ -10,6 +12,7 @@
 import com.vci.frameworkcore.model.SmRoleForPlatform1;
 import com.vci.frameworkcore.pagemodel.MenuVO;
 import com.vci.frameworkcore.pagemodel.SmFunctionVO;
+import com.vci.omd.utils.ObjectTool;
 import com.vci.starter.web.constant.QueryOptionConstant;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.*;
@@ -18,6 +21,7 @@
 import com.vci.web.service.UIEngineServiceI;
 import com.vci.web.service.WebBoServiceI;
 import com.vci.web.util.PlatformClientUtil;
+import com.vci.web.util.RightControlUtil;
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -74,6 +78,8 @@
     @Autowired
     private PlatformClientUtil platformClientUtil;
 
+    @Autowired
+    RightControlUtil rightControlUtil;
     /**
      * 鏌ヨ鎵�鏈夌殑鍔熻兘
      *
@@ -208,21 +214,33 @@
     @Override
     public List<MenuVO> treeCurrentUserMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException {
         SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException();
-        if(resourceControlTypeEnum == null){
-            resourceControlTypeEnum = ResourceControlTypeEnum.BS;
+        String parentId;
+
+        if (rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId())) {
+            // 绯荤粺鑿滃崟
+            parentId = "systemManagmentNode" ;
+        } else if (rightControlUtil.isThreeAdminCurUser()) {
+            parentId = "systemManagmentNode" ;
+        } else {
+            parentId = "modelManagmentNode" ;
         }
-        FunctionInfo[] menus = platformClientUtil.getFrameworkService().getModuleListByParentId("modelManagmentNode", true);
+        RoleRightInfo[] userRoleRights = rightControlUtil.getRoleRightByUserName(sessionInfo.getUserId());
+        Map<String, List<FunctionInfo>> map = rightControlUtil.getAllChildrenFunctionsByUserName(
+                parentId, sessionInfo.getUserId(), userRoleRights);
         List<MenuVO> functionVOList = new ArrayList<>();
-        for (FunctionInfo menu : menus) {
+        if(CollectionUtils.isEmpty(map.get(parentId))){
+            return functionVOList;
+        }
+        for (FunctionInfo menu : map.get(parentId)) {
             if(!menu.isValid){
                 continue;
             }
             MenuVO functionVO = new MenuVO();
             functionVO.setId(menu.id);
             functionVO.setSource(menu.image);
-            if(StringUtils.isBlank(menu.resourceB)){
-                continue;
-            }
+//            if(StringUtils.isBlank(menu.resourceB)){
+//                continue;
+//            }
             functionVO.setPath(menu.resourceB);
             functionVO.setParentId(menu.parentId);
             functionVO.setCode(menu.aliasName);
@@ -230,7 +248,7 @@
             functionVO.setName(menu.name);
             functionVO.getMeta().put("keepAlive",false);
             functionVO.setSort((int) menu.seq);
-            functionVO.setChildren(findChildFunctionVO(menu.id));
+            functionVO.setChildren(findChildFunctionVO(menu.id, map));
             if(functionVO.getChildren().size() > 0){
                 functionVO.setHasChildren(true);
             }else {
@@ -241,9 +259,12 @@
         return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList());
     }
 
-    public List<MenuVO> findChildFunctionVO(String parentOid) throws PLException {
-        FunctionInfo[] menus = platformClientUtil.getFrameworkService().getModuleListByParentId(parentOid, true);
+    public List<MenuVO> findChildFunctionVO(String parentOid,Map<String, List<FunctionInfo>> map) throws PLException {
+        List<FunctionInfo> menus = map.get(parentOid);
         List<MenuVO> functionVOList = new ArrayList<>();
+        if(menus == null){
+            return functionVOList;
+        }
         for (FunctionInfo menu : menus) {
             if(!menu.isValid){
                 continue;
@@ -251,9 +272,9 @@
             MenuVO functionVO = new MenuVO();
             functionVO.setId(menu.id);
             functionVO.setSource(menu.image);
-            if(StringUtils.isBlank(menu.resourceB) ){
-                continue;
-            }
+//            if(StringUtils.isBlank(menu.resourceB) ){
+//                continue;
+//            }
             functionVO.setPath(menu.resourceB);
             functionVO.setCode(menu.aliasName);
             functionVO.setAlias(menu.aliasName);
@@ -261,7 +282,7 @@
             functionVO.setName(menu.name);
             functionVO.getMeta().put("keepAlive",false);
             functionVO.setSort((int) menu.seq);
-            functionVO.setChildren(findChildFunctionVO(menu.id));
+            functionVO.setChildren(findChildFunctionVO(menu.id,map));
             if(functionVO.getChildren().size() > 0){
                 functionVO.setHasChildren(true);
             }else {
@@ -512,12 +533,12 @@
             if(!CollectionUtils.isEmpty(functionVOS)){
                 functionVOList.addAll(functionVOS);
                 String sql = "select plfuncoid,plroleoid from plroleright where plroleoid in (" + WebUtil.toInSql(roleOids.toArray(new String[0])) + ")";
-                List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryBySql(sql, null);
+                List<BusinessObject> cbos = boService.queryBySql(sql, null);
                 if(!CollectionUtils.isEmpty(cbos)){
                     cbos.stream().forEach(cbo->{
-                        String roleOid = cbo.getAttributeValue("plroleoid");
+                        String roleOid = ObjectTool.getBOAttributeValue(cbo,"plroleoid");
                         List<String> functionOids = roleFunctionOidMap.getOrDefault(roleOid,new ArrayList<>());
-                        functionOids.add(cbo.getAttributeValue("plfuncoid"));
+                        functionOids.add(ObjectTool.getBOAttributeValue(cbo,"plfuncoid"));
                         roleFunctionOidMap.put(roleOid,functionOids);
                     });
                 }

--
Gitblit v1.9.3