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