| | |
| | | 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.framework.data.*; |
| | | import com.vci.corba.omd.data.BusinessObject; |
| | | import com.vci.corba.portal.data.PLUILayout; |
| | | import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; |
| | |
| | | return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); |
| | | } |
| | | |
| | | public List<MenuVO> findChildAuthFunctionVO(String parentId,MenuVO functionVO) throws PLException { |
| | | // List<FunctionInfo> menus = map.get(parentOid); |
| | | //0表示没有模块也没有操作,1表示有模块,2表示有操作 |
| | | long l = platformClientUtil.getFrameworkService().checkChildObject(parentId); |
| | | |
| | | // funcObj.setFuncType(funcType); |
| | | // |
| | | // if(funcType == 1){ |
| | | // FunctionObject[] funcObjs = new FunctionClientDelegate().getModuleListByParentId(funcObj.getId(),false); |
| | | // for(int i=0;i<funcObjs.length;i++){ |
| | | // VCIBaseTreeNode curNode = new VCIBaseTreeNode(funcObjs[i].getName(), funcObjs[i]); |
| | | // treeModel.insertNodeInto(curNode, node,node.getChildCount()); |
| | | // setChildNode(curNode,funcObjs[i]); |
| | | // } |
| | | // }else if(funcType == 2){ |
| | | // FuncOperationObject[] funcOperateObjs = new FuncOperationClientDelegate().getFuncOperationByModuleId(funcObj.getId(), "", true); |
| | | // for (int j = 0; j < funcOperateObjs.length; j++) { |
| | | // VCIBaseTreeNode childNode = new VCIBaseTreeNode(funcOperateObjs[j].getOperAlias(),funcOperateObjs[j]); |
| | | // UserObject user = rightManagementClient.fetchUserInfoByName(PLTApplication.getUserEntityObject().getUserName()); |
| | | //// if(user.getUserType() == 0 || childNode.toString().equals("查看")){ |
| | | //// treeModel.insertNodeInto(childNode, node,node.getChildCount()); |
| | | //// childNode.setLeaf(true); |
| | | //// }else{ |
| | | //// boolean res = initRoleRightByType(childNode); |
| | | //// if(res){ |
| | | // treeModel.insertNodeInto(childNode, node,node.getChildCount()); |
| | | // childNode.setLeaf(true); |
| | | //// } |
| | | //// } |
| | | // } |
| | | // }else{ |
| | | // functionVO.setHasChildren(false); |
| | | // } |
| | | // |
| | | // |
| | | // |
| | | // |
| | | // |
| | | // int funcType = funcDel.checkChildObject(funcObj.getId()); |
| | | // funcObj.setFuncType(funcType); |
| | | // |
| | | // |
| | | List<MenuVO> functionVOList = new ArrayList<>(); |
| | | // if(menus == null){ |
| | | // return functionVOList; |
| | | // } |
| | | // for (FunctionInfo menu : menus) { |
| | | // if(!menu.isValid){ |
| | | // continue; |
| | | // } |
| | | // MenuVO functionVO = new MenuVO(); |
| | | // functionVO.setId(menu.id); |
| | | // functionVO.setSource(menu.image); |
| | | //// if(StringUtils.isBlank(menu.resourceB) ){ |
| | | //// continue; |
| | | //// } |
| | | // functionVO.setPath(menu.resourceB); |
| | | // functionVO.setCode(menu.aliasName); |
| | | // functionVO.setAlias(menu.aliasName); |
| | | // functionVO.setParentId(menu.parentId); |
| | | // functionVO.setName(menu.name); |
| | | // functionVO.getMeta().put("keepAlive",false); |
| | | // functionVO.setSort((int) menu.seq); |
| | | // functionVO.setChildren(findChildAuthFunctionVO(menu.id,functionVO)); |
| | | // if(functionVO.getChildren().size() > 0){ |
| | | // functionVO.setHasChildren(true); |
| | | // }else { |
| | | // functionVO.setHasChildren(false); |
| | | // } |
| | | // functionVOList.add(functionVO); |
| | | // } |
| | | return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); |
| | | } |
| | | |
| | | @Override |
| | | public UIContentVO getUIContentByBtmTypeAndId(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException { |
| | | SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); |
| | |
| | | public void clearCache() { |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 通过模块ID获取子级列表 |
| | | * @param parentId |
| | | * @param modeType 模块类型 |
| | | * @param isAll 是否包括无效的模块,true则包括 |
| | | * @return |
| | | * @throws VciBaseException |
| | | */ |
| | | @Override |
| | | public List<MenuVO> getSysModelAuthTreeMenuByPID(String parentId,String modeType,boolean isAll) throws VciBaseException, PLException { |
| | | List<MenuVO> menuVOList = new ArrayList<>(); |
| | | if(Func.isBlank(parentId)){ |
| | | return menuVOList; |
| | | } |
| | | SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); |
| | | boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); |
| | | if (adminOrDeveloperOrRoot) { |
| | | //系统菜单 |
| | | parentId = SYSTEMMANAGMENTNODE; |
| | | } else if (rightControlUtil.isThreeAdminCurUser()) { |
| | | //三员返回管理功能模块相关的菜单 |
| | | parentId = SYSTEMMANAGMENTNODE; |
| | | } else { |
| | | //普通用户只返回业务功能模块相关的菜单 |
| | | parentId = ROOT_MENU_ID; |
| | | } |
| | | List<MenuVO> functionVOList = new ArrayList<>(); |
| | | FunctionInfo[] moduleListByParentId = getModuleListByParentId(parentId, false); |
| | | 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); |
| | | // try { |
| | | // functionVO.setChildren(findChildAuthFunctionVO(menu.id)); |
| | | // } catch (PLException e) { |
| | | // e.printStackTrace(); |
| | | // String errorMsg = "菜单查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | // logger.error(errorMsg); |
| | | // throw new VciBaseException(errorMsg); |
| | | // } |
| | | if(functionVO.getChildren().size() > 0){ |
| | | functionVO.setHasChildren(true); |
| | | }else { |
| | | functionVO.setHasChildren(false); |
| | | } |
| | | functionVOList.add(functionVO); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | RoleRightInfo[] userRoleRights = rightControlUtil.getRoleRightByUserName(sessionInfo.getUserId()); |
| | | Map<String, List<FunctionInfo>> map = rightControlUtil.getAllChildrenFunctionsByUserName( |
| | | parentId, sessionInfo.getUserId(), userRoleRights); |
| | | |
| | | if(Func.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; |
| | | //} |
| | | 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); |
| | | // try { |
| | | // functionVO.setChildren(findChildAuthFunctionVO(menu.id, map)); |
| | | // } catch (PLException e) { |
| | | // e.printStackTrace(); |
| | | // String errorMsg = "菜单查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); |
| | | // logger.error(errorMsg); |
| | | // throw new VciBaseException(errorMsg); |
| | | // } |
| | | if(functionVO.getChildren().size() > 0){ |
| | | functionVO.setHasChildren(true); |
| | | }else { |
| | | functionVO.setHasChildren(false); |
| | | } |
| | | functionVOList.add(functionVO); |
| | | } |
| | | //如果是开发或者测试用户,需哟获取系统模块配置菜单 |
| | | if(adminOrDeveloperOrRoot){ |
| | | //获取首页系统模块配置菜单 |
| | | MenuVO menuVO = JsonConfigReader.getSysModuleConf().getSysModuleNode(); |
| | | if(Func.isNotEmpty(menuVO)){ |
| | | functionVOList.add(menuVO); |
| | | } |
| | | } |
| | | return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // |
| | | // |
| | | // |
| | | // |
| | | // 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表示是操作**/ |
| | | // if(childType == 2){ |
| | | // try{ |
| | | // FuncOperationInfo[] infos = platformClientUtil.getFrameworkService().getFuncOperationByModule(parentId, "", false); |
| | | // 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(); |
| | | // throw new VciBaseException(String.valueOf(e.code), e.messages); |
| | | // } |
| | | // }else if(childType == 1){ |
| | | // try{ |
| | | // FunctionInfo[] funcInfos = platformClientUtil.getFrameworkService().getModuleListByParentId(parentId, isAll); |
| | | // 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(); |
| | | // throw new VciBaseException(String.valueOf(e.code),e.messages); |
| | | // } |
| | | // } |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // throw new VciBaseException("模块查询时出现错误,原因:"+VciBaseUtil.getExceptionMessage(e)); |
| | | // } |
| | | // }else{ |
| | | // try{ |
| | | // MenuVO parentNode = null; |
| | | // //将返回的节点外层套上当前父节点 |
| | | // if("systemManagmentNode".equals(parentId)){ |
| | | // parentNode = JsonConfigReader.getSysModuleConf().getSystemManagmentNode(); |
| | | // }else if("modelManagmentNode".equals(parentId)){ |
| | | // parentNode = JsonConfigReader.getSysModuleConf().getModelManagmentNode(); |
| | | // } |
| | | // //如果查询的是第一层节点就需要直接返回systemManagmentNode或modelManagmentNode节点 |
| | | // 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("operateNode")){ |
| | | // //加载所有操作 |
| | | // try{ |
| | | // //将返回的节点外层套上当前父节点 |
| | | // MenuVO parentNode = JsonConfigReader.getSysModuleConf().getOperateNode(); |
| | | // //如果查询的是第一层节点就需要直接返回sysOptionNode节点 |
| | | // 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]; |
| | | // MenuVO menuVO = new MenuVO(); |
| | | // menuVO.setId(operateInfo.id); |
| | | // menuVO.setName(operateInfo.name); |
| | | // 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); |
| | | // menuVO.setModeType("operateObject"); |
| | | // menuVO.setHasChildren(false); |
| | | // menuVOList.add(menuVO); |
| | | // } |
| | | // }catch (PLException e) { |
| | | // e.printStackTrace(); |
| | | // throw new VciBaseException(String.valueOf(e.code),new String[]{VciBaseUtil.getExceptionMessage(e)}); |
| | | // } |
| | | // } |
| | | // return null; |
| | | // return menuVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 通过模块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; |
| | | } |
| | | } |