From 435e3366a85f797ce02008698c28c9a8ca73b4a6 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 08 十月 2024 10:10:24 +0800 Subject: [PATCH] UI定义复制粘贴树查询接口,按钮复制粘贴接口 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java | 402 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 366 insertions(+), 36 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 1f6c4de..b60237c 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 @@ -2,18 +2,22 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSONReader; import com.vci.client.ClientSession; +import com.vci.client.common.objects.RoleObject; import com.vci.common.exception.VciException; import com.vci.common.locale.LocaleDisplay; import com.vci.corba.common.PLException; -import com.vci.corba.framework.data.FuncOperationInfo; -import com.vci.corba.framework.data.FunctionInfo; -import com.vci.corba.framework.data.OperateInfo; -import com.vci.corba.framework.data.RoleRightInfo; +import com.vci.corba.common.data.UserEntityInfo; +import com.vci.corba.framework.data.*; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.portal.data.PLUILayout; +import com.vci.dto.RoleInfoDTO; +import com.vci.dto.RoleRightDTO; +import com.vci.dto.RoleRightParamDTO; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; import com.vci.frameworkcore.enumpck.ResourceControlTypeEnum; +import com.vci.model.RoleRightDO; import com.vci.model.SmFunctionForPlatform1; import com.vci.model.SmRoleForPlatform1; import com.vci.pagemodel.MenuVO; @@ -33,6 +37,7 @@ import com.vci.web.util.RightControlUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.el.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -176,7 +181,7 @@ private SmFunctionVO functionForPlatform1ToFunctionVO(SmFunctionForPlatform1 functionForPlatform1){ SmFunctionVO functionVO = new SmFunctionVO(); functionVO.setOid(functionForPlatform1.getPloid()); - functionVO.setId(String.valueOf(functionForPlatform1.getPlmoduleno())); + //functionVO.setId(String.valueOf(functionForPlatform1.getPlmoduleno())); functionVO.setName(functionForPlatform1.getPlname()); functionVO.setLogName(functionForPlatform1.getPlaliasname()); if(StringUtils.isNotBlank(functionForPlatform1.getPlresourceb())){ @@ -287,8 +292,10 @@ //濡傛灉鏄紑鍙戞垨鑰呮祴璇曠敤鎴凤紝闇�鍝熻幏鍙栫郴缁熸ā鍧楅厤缃彍鍗� if(adminOrDeveloperOrRoot){ //鑾峰彇棣栭〉绯荤粺妯″潡閰嶇疆鑿滃崟 - MenuVO menuVO = JsonConfigReader.getMenuVO(); - functionVOList.add(menuVO); + MenuVO menuVO = JsonConfigReader.getSysModuleConf().getSysModuleNode(); + if(Func.isNotEmpty(menuVO)){ + functionVOList.add(menuVO); + } } return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); } @@ -296,38 +303,45 @@ /** * 閫氳繃妯″潡ID鑾峰彇瀛愮骇鍒楄〃 * @param parentId + * @param modeType 妯″潡绫诲瀷 * @param isAll 鏄惁鍖呮嫭鏃犳晥鐨勬ā鍧楋紝true鍒欏寘鎷� * @return * @throws VciBaseException */ @Override - public List<MenuVO> getSysModelTreeMenuByPID(String parentId,boolean isAll) throws VciBaseException{ + public List<MenuVO> getSysModelTreeMenuByPID(String parentId,String modeType,boolean isAll) throws VciBaseException{ List<MenuVO> menuVOList = new ArrayList<>(); if(Func.isBlank(parentId)){ return menuVOList; } - if(parentId.equals("mangeModel") || parentId.equals("businessModel")){ - if(parentId.equalsIgnoreCase("FunctionObject")){ + boolean isFunctionObject = Func.isNotBlank(modeType) && modeType.equalsIgnoreCase("FunctionObject"); + if(parentId.equals("systemManagmentNode") || parentId.equals("modelManagmentNode") || isFunctionObject){ + int childType = this.checkChildObject(parentId); + if(isFunctionObject){ try { /**鍒ゆ柇璇ユā鍧椾笅瀛愬璞℃槸妯″潡杩樻槸鎿嶄綔锛�0琛ㄧず鏃犲瓙鑺傜偣锛�1琛ㄧず鏄ā鍧楋紝2琛ㄧず鏄搷浣�**/ - int childType = this.checkChildObject(parentId); if(childType == 2){ try{ FuncOperationInfo[] infos = platformClientUtil.getFrameworkService().getFuncOperationByModule(parentId, "", false); - for(int i = 0;i < infos.length ;i++){ - FuncOperationInfo info = infos[i]; - MenuVO menuVO = new MenuVO(); - menuVO.setId(info.id); - menuVO.setCode(info.funcId); - menuVO.setId(info.operId); - menuVO.setName(info.operName); - //menuVO.setOperIndentify(info.operIndentify); - menuVO.setAlias(info.operAlias); - menuVO.setRemark(info.operDesc); - menuVO.setSort((int) info.number); - //menuVO.setIsValid(info.isValid); - menuVO.setHasChildren(false); - menuVOList.add(menuVO); + if(Func.isNotEmpty(infos.length)){ + childType = this.checkChildObject(infos[0].id); //閮芥槸鍚屼竴灞傛墍浠ュ彇绗竴涓嵆鍙煡璇㈡槸浠�涔堢被鍨� + for(int i = 0;i < infos.length ;i++){ + FuncOperationInfo info = infos[i]; + MenuVO menuVO = new MenuVO(); + menuVO.setChildType(childType); + menuVO.setId(info.id); + menuVO.setFuncId(info.funcId); + menuVO.setCode(info.operIndentify); + menuVO.setOperId(info.operId); + menuVO.setName(info.operName); + menuVO.setAlias(info.operAlias); + menuVO.setRemark(info.operDesc); + menuVO.setSort((int) info.number); + menuVO.setModeType("FunctionObject"); + menuVO.setIsValid(info.isValid); + menuVO.setHasChildren(false); + menuVOList.add(menuVO); + } } }catch (PLException e) { e.printStackTrace(); @@ -336,10 +350,15 @@ }else if(childType == 1){ try{ FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll); - for(int i = 0;i < funcInfos.length; i++){ - FunctionInfo funcInfo = funcInfos[i]; - MenuVO menuVO = this.functionInfoToMenuVO(funcInfo); - menuVOList.add(menuVO); + if(Func.isNotEmpty(funcInfos.length)){ + childType = this.checkChildObject(funcInfos[0].id); //閮芥槸鍚屼竴灞傛墍浠ュ彇绗竴涓嵆鍙煡璇㈡槸浠�涔堢被鍨� + for(int i = 0;i < funcInfos.length; i++){ + FunctionInfo funcInfo = funcInfos[i]; + MenuVO menuVO = this.functionInfoToMenuVO(funcInfo); + menuVO.setChildType(childType); + menuVO.setModeType("FunctionObject"); + menuVOList.add(menuVO); + } } }catch (PLException e) { e.printStackTrace(); @@ -352,21 +371,43 @@ } }else{ try{ + MenuVO parentNode = null; + //灏嗚繑鍥炵殑鑺傜偣澶栧眰濂椾笂褰撳墠鐖惰妭鐐� + if("systemManagmentNode".equals(parentId)){ + parentNode = JsonConfigReader.getSysModuleConf().getSystemManagmentNode(); + }else if("modelManagmentNode".equals(parentId)){ + parentNode = JsonConfigReader.getSysModuleConf().getModelManagmentNode(); + } + //濡傛灉鏌ヨ鐨勬槸绗竴灞傝妭鐐瑰氨闇�瑕佺洿鎺ヨ繑鍥瀞ystemManagmentNode鎴杕odelManagmentNode鑺傜偣 + if(Func.isNotBlank(modeType) && modeType.equals("firstNode")){ + menuVOList.add(parentNode); + return menuVOList; + } + //鏌ヨ鐨勪笁绾ц妭鐐� FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll); for(int i = 0;i < funcInfos.length; i++){ FunctionInfo funcInfo = funcInfos[i]; MenuVO menuVO = this.functionInfoToMenuVO(funcInfo); menuVO.setModeType("FunctionObject"); + menuVO.setChildType(childType); menuVOList.add(menuVO); } + return menuVOList; }catch (PLException e) { e.printStackTrace(); throw new VciBaseException(String.valueOf(e.code),e.messages); } } - }else if(parentId.equals("operateType")){ + }else if(parentId.equals("operateNode")){ //鍔犺浇鎵�鏈夋搷浣� try{ + //灏嗚繑鍥炵殑鑺傜偣澶栧眰濂椾笂褰撳墠鐖惰妭鐐� + MenuVO parentNode = JsonConfigReader.getSysModuleConf().getOperateNode(); + //濡傛灉鏌ヨ鐨勬槸绗竴灞傝妭鐐瑰氨闇�瑕佺洿鎺ヨ繑鍥瀞ysOptionNode鑺傜偣 + if(Func.isNotBlank(modeType) && modeType.equals("firstNode")){ + menuVOList.add(parentNode); + return menuVOList; + } OperateInfo[] operateInfos = platformClientUtil.getFrameworkService().getOperateTreeList(parentId); for(int i = 0; i < operateInfos.length;i++ ){ OperateInfo operateInfo = operateInfos[i]; @@ -376,6 +417,7 @@ menuVO.setCode(operateInfo.identify); menuVO.setAlias(operateInfo.alias); menuVO.setCategory(2); + menuVO.setChildType(0); menuVO.setRemark(operateInfo.desc); menuVO.getMeta().put("keepAlive",false); menuVO.setSort((int) operateInfo.seq); @@ -388,7 +430,7 @@ throw new VciBaseException(String.valueOf(e.code),new String[]{VciBaseUtil.getExceptionMessage(e)}); } } - return menuVOList; + return menuVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); } /** @@ -399,10 +441,11 @@ private MenuVO functionInfoToMenuVO(FunctionInfo funcInfo){ MenuVO menuVO = new MenuVO(); menuVO.setId(funcInfo.id); + menuVO.setValid(funcInfo.isValid); menuVO.setSource(funcInfo.image); - //if(StringUtils.isBlank(menu.resourceB)){ - // continue; - //} + menuVO.setPathC(funcInfo.resourceC); + menuVO.setResourceDotNet(funcInfo.resourceDotNet); + menuVO.setResourceMobile(funcInfo.resourceMobile); menuVO.setPath(funcInfo.resourceB); menuVO.setParentId(funcInfo.parentId); menuVO.setCode(funcInfo.aliasName); @@ -427,8 +470,8 @@ @Override public int checkChildObject(String moduleId) throws VciBaseException { long res = 0; - try{ - res = ClientSession.getFrameworkService().checkChildObject(moduleId); + try{//20D63A69-C6BC-8519-8B2B-E5ACFEA62394 + res = platformClientUtil.getFrameworkService().checkChildObject(moduleId); }catch (PLException e) { e.printStackTrace(); throw new VciBaseException(String.valueOf(e.code),e.messages); @@ -470,6 +513,51 @@ return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); } + public void findChildAuthFunctionVO(MenuVO functionVO, boolean isAll) throws PLException { + //0琛ㄧず娌℃湁妯″潡涔熸病鏈夋搷浣滐紝1琛ㄧず鏈夋ā鍧楋紝2琛ㄧず鏈夋搷浣� + long type = platformClientUtil.getFrameworkService().checkChildObject(functionVO.getId()); + if(type == 1){ + FunctionInfo[] funcObjs = platformClientUtil.getFrameworkService().getModuleListByParentId(functionVO.getId(), isAll); + for (FunctionInfo funcObj : funcObjs) { + MenuVO menuVO = new MenuVO(); + menuVO.setId(funcObj.id); + menuVO.setSource(funcObj.image); + menuVO.setPath(funcObj.resourceB); + menuVO.setCode(funcObj.aliasName); + menuVO.setAlias(funcObj.aliasName); + menuVO.setParentId(funcObj.parentId); + menuVO.setChildType((int) type); + menuVO.setName(funcObj.name); + menuVO.getMeta().put("keepAlive",false); + menuVO.setSort((int) funcObj.seq); + findChildAuthFunctionVO(menuVO, isAll); + functionVO.getChildren().add(menuVO); + functionVO.setHasChildren(true); + } + }else if(type == 2){ + FuncOperationInfo[] infos = platformClientUtil.getFrameworkService().getFuncOperationByModule(functionVO.getId(), "", true); + for (FuncOperationInfo info : infos) { + MenuVO menuVO = new MenuVO(); + menuVO.setChildType((int) type); + menuVO.setId(info.id); + menuVO.setFuncId(info.funcId); + menuVO.setCode(info.operIndentify); + menuVO.setOperId(info.operId); + menuVO.setName(info.operName); + menuVO.setAlias(info.operAlias); + menuVO.setRemark(info.operDesc); + menuVO.setSort((int) info.number); + menuVO.setModeType("FunctionObject"); + menuVO.setIsValid(info.isValid); + menuVO.setHasChildren(false); + functionVO.getChildren().add(menuVO); + functionVO.setHasChildren(true); + } + }else{ + functionVO.setHasChildren(false); + } + } + @Override public UIContentVO getUIContentByBtmTypeAndId(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); @@ -483,6 +571,188 @@ } } return null; + } + + /** + * 鑾峰彇鎺堟潈鐨勬ā鍧� + * @param roleId 瑙掕壊涓婚敭 + * @return 鎵�鍏锋湁鏉冮檺鐨勪富閿� + * @throws PLException + */ + @Override + public List<String> getSysModelAuth(String roleId) throws PLException { + + RoleRightInfo[] roleRightList = platformClientUtil.getFrameworkService().getRoleRightList(roleId, WebUtil.getCurrentUserId()); + Map<String, Long> authMap = Arrays.stream(roleRightList).collect(Collectors.toMap(e -> e.funcId, e -> e.rightValue, + (existing, replacement) -> existing)); + String parentId; + SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); + boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); + if (adminOrDeveloperOrRoot) { + //绯荤粺鑿滃崟 + parentId = SYSTEMMANAGMENTNODE; + } else { + //鏅�氱敤鎴峰彧杩斿洖涓氬姟鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� + parentId = ROOT_MENU_ID; + } + FunctionInfo[] moduleListByParentId = getModuleListByParentId(parentId, false); + List<String> authList = new ArrayList<>(); + for (FunctionInfo functionInfo : moduleListByParentId) { + if(authMap.containsKey(functionInfo.id)){ + authList.add(functionInfo.id); + getChildAuthNode(functionInfo, authMap, authList); + } + } + return authList; + } + + public BaseResult saveRoleRight(List<RoleRightParamDTO> roleRightDTOS, String roleId) throws PLException { + /** + * 瀛樺偍闇�瑕佷繚瀛樼殑鏉冮檺 + */ + Map<String,RoleRightInfo> rightMap = new HashMap<String,RoleRightInfo>(); + + Map<String, List<RoleRightParamDTO>> parentMap = roleRightDTOS.stream().collect(Collectors.groupingBy(e -> e.parentId)); + + for (RoleRightParamDTO dto : roleRightDTOS) { + RoleRightInfo obj = null; + //鍒ゆ柇绫诲瀷 + if(dto.getType() == 1 && !dto.getParentId().equals(ROOT_MENU_ID) + && !dto.getParentId().equals(SYSTEMMANAGMENTNODE) + && !dto.getParentId().equals(OPERATENODE)){ + if(!rightMap.containsKey(dto.getParentId())){ + obj = new RoleRightInfo(); + obj.funcId = dto.getParentId(); + obj.rightType = (short)1; + obj.rightValue = 1;//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + obj.roleId = roleId; + obj.createUser = WebUtil.getCurrentUserId(); + obj.createTime = new Date().getTime(); + obj.modifyUser = WebUtil.getCurrentUserId(); + obj.modifyTime = new Date().getTime(); + obj.licensor = ""; + }else{ + obj = rightMap.get(dto.getParentId()); + if (obj == null) { + obj = new RoleRightInfo(); + obj.funcId = dto.getParentId(); + obj.rightType = (short)1; + obj.rightValue = 1;//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + obj.roleId = roleId; + obj.createUser = WebUtil.getCurrentUserId(); + obj.createTime = new Date().getTime(); + obj.modifyUser = WebUtil.getCurrentUserId(); + obj.modifyTime = new Date().getTime(); + obj.licensor = ""; + }else { + obj.rightValue = 1; + } + } + rightMap.put(dto.getParentId(), obj); + }else if (dto.getType() == 2){ +// RoleRightInfo roleRightObj = new RoleRightInfo(); + if(!rightMap.containsKey(dto.getParentId())) { + obj = new RoleRightInfo(); + obj.funcId = dto.getParentId(); + obj.rightType = (short)1; + obj.rightValue = countRightValue(parentMap.get(dto.getParentId()));//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + obj.roleId = roleId; + obj.createUser = WebUtil.getCurrentUserId(); + obj.createTime = new Date().getTime(); + obj.modifyUser = WebUtil.getCurrentUserId(); + obj.modifyTime = new Date().getTime(); + obj.licensor = ""; + rightMap.put(dto.getParentId(), obj); + } + + } + } + /**涓婇潰澶勭悊瀹屾垚鍚庯紝寰幆閬嶅巻鍙栧嚭MAP閲岀殑瀵硅薄杩涜淇濆瓨**/ + RoleRightInfo[] roleRightObjs = new RoleRightInfo[rightMap.size()]; + Set<String> objSet = rightMap.keySet(); + Iterator<String> it = objSet.iterator(); + int i = 0; + while(it.hasNext()){ + roleRightObjs[i++] = rightMap.get(it.next()); + } + UserEntityInfo userEntityInfo = new UserEntityInfo(); + userEntityInfo.setModules("com.vci.client.framework.rightdistribution.roleRight.RoleRightPanel"); + userEntityInfo.setUserName(WebUtil.getCurrentUserId()); + boolean res = platformClientUtil.getFrameworkService() + .saveRoleRight(roleRightObjs,roleId,WebUtil.getCurrentUserId(), userEntityInfo); + if(!res){ + throw new PLException("500", new String[]{"鍔熻兘妯″潡鎺堟潈澶辫触锛�"}); + } + return BaseResult.success(); + } + + /** + * 鑾峰彇鎵�鎺堟潈鐨勬ā鍧楁潈闄� + * @param roleName 鎼滅储鐨勮鑹� + * @return 瑙掕壊鍒楄〃 + */ + @Override + public List<RoleInfoDTO> getRoleList(String roleName) throws PLException { + RoleInfo[] roleInfos = platformClientUtil.getFrameworkService().fetchRoleInfoByUserType(WebUtil.getCurrentUserId()); + List<RoleInfoDTO> dtos = new ArrayList<>(); + for (RoleInfo roleInfo : roleInfos) { + if(StringUtils.isBlank(roleName) || roleInfo.name.indexOf(roleName) != -1) { + RoleInfoDTO dto = new RoleInfoDTO(); + dto.setName(roleInfo.name); + dto.setDescription(roleInfo.description); + dto.setId(roleInfo.id); + dto.setGrantor(roleInfo.grantor); + dto.setType(roleInfo.type); + dto.setCreateTime(roleInfo.createTime); + dto.setCreateUser(roleInfo.createUser); + dto.setUpdateTime(roleInfo.updateTime); + dto.setUpdateUser(roleInfo.updateUser); + dtos.add(dto); + } + } + return dtos; + } + + private long countRightValue(List<RoleRightParamDTO> dtos){ + long value = 0; + for (RoleRightParamDTO dto : dtos) { + value += (long)Math.pow(2, dto.getNumber());//绱鍔犱笂鍚勪釜鎿嶄綔鐨勬潈闄愬�� + } + return value; + } + + /** + * + * @param funcObj 妯″潡瀵硅薄 + * @param authMap 璇ヨ鑹蹭笅鎵�鏈夌殑鏉冮檺鏁版嵁 + * @param authList 璇ヨ鑹蹭笅鎵�鍏锋湁鐨勬潈闄� + * @throws PLException + */ + private void getChildAuthNode(FunctionInfo funcObj, Map<String, Long> authMap, List<String> authList) throws PLException { + /**0琛ㄧず璇ユā鍧椾笅浠�涔堥兘娌℃湁锛�1琛ㄧず鏈夋ā鍧楋紝2琛ㄧず鏈夋搷浣�**/ + long funcType = platformClientUtil.getFrameworkService().checkChildObject(funcObj.id); + if(funcType == 1){ + FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(funcObj.id, false); + for(int i=0;i<funcInfos.length;i++){ + if(authMap.containsKey(funcInfos[i].id)){ + authList.add(funcInfos[i].id); + getChildAuthNode(funcInfos[i], authMap, authList); + } + } + }else if(funcType == 2){ + FuncOperationInfo[] funcOperates = platformClientUtil.getFrameworkService().getFuncOperationByModule(funcObj.id, "", true); + for (int j = 0; j < funcOperates.length; j++) { + if(authMap.containsKey(funcOperates[j].funcId)){ + long rightValue = authMap.get(funcOperates[j].funcId); + long nodeValue = funcOperates[j].number; + long preValue = (rightValue >> nodeValue) & 1; + //杩涜浣嶄笌鎿嶄綔锛屽鏋滅浉绛夊垯琛ㄧず鍏锋湁褰撳墠鎿嶄綔鐨勬潈闄� + if (preValue == 1) { + authList.add(funcOperates[j].id); + } + } + } + } } /** @@ -818,4 +1088,64 @@ public void clearCache() { } + + + /** + * 閫氳繃妯″潡ID鑾峰彇瀛愮骇鍒楄〃 + * @param isAll 鏄惁鍖呮嫭鏃犳晥鐨勬ā鍧楋紝true鍒欏寘鎷� + * @return + * @throws VciBaseException + */ + @Override + public List<MenuVO> getSysModelAuthTreeMenuByPID(boolean isAll) throws VciBaseException, PLException { + SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); + boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); + String parentId; + if (adminOrDeveloperOrRoot) { + //绯荤粺鑿滃崟 + parentId = SYSTEMMANAGMENTNODE; + } else { + //鏅�氱敤鎴峰彧杩斿洖涓氬姟鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� + parentId = ROOT_MENU_ID; + } + List<MenuVO> functionVOList = new ArrayList<>(); + FunctionInfo[] moduleListByParentId = getModuleListByParentId(parentId, isAll); + for (FunctionInfo menu : moduleListByParentId) { + if(!menu.isValid){ + continue; + } + MenuVO functionVO = new MenuVO(); + functionVO.setId(menu.id); + functionVO.setSource(menu.image); + functionVO.setPath(menu.resourceB); + functionVO.setParentId(menu.parentId); + functionVO.setCode(menu.aliasName); + functionVO.setAlias(menu.aliasName); + functionVO.setName(menu.name); + functionVO.getMeta().put("keepAlive",false); + functionVO.setSort((int) menu.seq); + findChildAuthFunctionVO(functionVO, isAll); + if(functionVO.getChildren().size() > 0){ + functionVO.setHasChildren(true); + }else { + functionVO.setHasChildren(false); + } + functionVOList.add(functionVO); + } + return functionVOList; + } + + + /** + * 閫氳繃妯″潡ID鑾峰彇瀛愮骇鍒楄〃 + * @param parentId + * @param isAll 鏄惁鍖呮嫭鏃犳晥鐨勬ā鍧楋紝true鍒欏寘鎷� + * @return + * @throws VciException + */ + public FunctionInfo[] getModuleListByParentId(String parentId,boolean isAll) throws PLException { + FunctionInfo[] funcInfos = null; + funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll); + return funcInfos; + } } -- Gitblit v1.9.3