From 118211ba511524e94952c896bd508ff9baec46c8 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 15 八月 2024 23:23:07 +0800 Subject: [PATCH] 业务类型接口联调调整,菜单查询调整 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 140 insertions(+), 22 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 1414528..ec3221a 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 @@ -1,5 +1,6 @@ package com.vci.frameworkcore.compatibility.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.vci.corba.common.PLException; import com.vci.corba.framework.data.FunctionInfo; @@ -17,10 +18,12 @@ import com.vci.starter.web.constant.QueryOptionConstant; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.*; +import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.pagemodel.UIContentVO; import com.vci.web.service.UIEngineServiceI; import com.vci.web.service.WebBoServiceI; +import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.RightControlUtil; import com.vci.web.util.WebUtil; @@ -51,9 +54,17 @@ /** * 鑿滃崟鐨勬牴鑺傜偣涓婚敭锛岃繖涓槸骞冲彴瀹氫箟鐨� */ - private final String ROOT_MENU_Id = "modelManagmentNode"; + private final String ROOT_MENU_ID = "modelManagmentNode"; + /** + * 绠$悊鍔熻兘妯″潡鑿滃崟鏍硅妭鐐� + */ + private final String SYSTEMMANAGMENTNODE = "systemManagmentNode"; + /** + * 鎿嶄綔绫诲瀷绠$悊鑿滃崟鏍硅妭鐐� + */ + private final String OPERATENODE = "operateNode"; /** * 浣跨敤鐢ㄦ埛鏌ヨ @@ -81,6 +92,7 @@ @Autowired RightControlUtil rightControlUtil; + /** * 鏌ヨ鎵�鏈夌殑鍔熻兘 * @@ -199,7 +211,7 @@ functionVO.setDescription(functionForPlatform1.getPldesc()); } } - + functionVO.setBtmname("function"); //鑰佺殑鏁版嵁閲屽垱寤轰汉锛屾渶鍚庝慨鏀逛汉绛夐兘娌℃湁 return functionVO; @@ -216,20 +228,23 @@ public List<MenuVO> treeCurrentUserMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) throws PLException { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfoNotException(); String parentId; - - if (rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId())) { - // 绯荤粺鑿滃崟 - parentId = "systemManagmentNode" ; + boolean adminOrDeveloperOrRoot = rightControlUtil.isAdminOrDeveloperOrRoot(sessionInfo.getUserId()); + if (adminOrDeveloperOrRoot) { + //绯荤粺鑿滃崟 + parentId = SYSTEMMANAGMENTNODE; } else if (rightControlUtil.isThreeAdminCurUser()) { - parentId = "systemManagmentNode" ; + //涓夊憳杩斿洖绠$悊鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� + parentId = SYSTEMMANAGMENTNODE; } else { - parentId = "modelManagmentNode" ; + //鏅�氱敤鎴峰彧杩斿洖涓氬姟鍔熻兘妯″潡鐩稿叧鐨勮彍鍗� + parentId = ROOT_MENU_ID; } RoleRightInfo[] userRoleRights = rightControlUtil.getRoleRightByUserName(sessionInfo.getUserId()); Map<String, List<FunctionInfo>> map = rightControlUtil.getAllChildrenFunctionsByUserName( parentId, sessionInfo.getUserId(), userRoleRights); + List<MenuVO> functionVOList = new ArrayList<>(); - if(CollectionUtils.isEmpty(map.get(parentId))){ + if(Func.isEmpty(map.get(parentId))) { return functionVOList; } for (FunctionInfo menu : map.get(parentId)) { @@ -239,9 +254,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.setParentId(menu.parentId); functionVO.setCode(menu.aliasName); @@ -249,7 +264,14 @@ functionVO.setName(menu.name); functionVO.getMeta().put("keepAlive",false); functionVO.setSort((int) menu.seq); - functionVO.setChildren(findChildFunctionVO(menu.id, map)); + try { + functionVO.setChildren(findChildFunctionVO(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 { @@ -257,7 +279,107 @@ } functionVOList.add(functionVO); } + if(adminOrDeveloperOrRoot){ + functionVOList.addAll(this.getSystemMenu()); + } return functionVOList.stream().sorted(Comparator.comparing(s -> s.getSort())).collect(Collectors.toList()); + } + + /** + * 鑾峰彇棣栭〉绯荤粺妯″潡閰嶇疆鑿滃崟 + * @return + */ + private List<MenuVO> getSystemMenu(){ + /*濡傛灉鏄祴璇曡处鍙锋垨鑰呭紑鍙戣处鍙凤紝澶勭悊杩斿洖systemManagmentNode鍜宮odelManagmentNode浠ュ锛� + 杩橀渶瑕佽繑鍥炴搷浣滅被鍨嬬鐞嗚彍鍗曡妭鐐癸紙operateNode锛夊拰绯荤粺閰嶇疆銆佺郴缁熻繍琛岀洃鎺ц妭鐐�*/ + List<MenuVO> functionVOList = new ArrayList<>(); + String menuJson = "{\n" + + " \"hasChildren\": true,\n" + + " \"children\": [\n" + + " {\n" + + " \"hasChildren\": true,\n" + + " \"children\": [],\n" + + " \"id\": \"systemManagmentNode\",\n" + + " \"name\": \"绠$悊鍔熻兘妯″潡\",\n" + + " \"parentId\": \"VCIBaseTreeNode\",\n" + + " \"code\": \"systemManagmentNode\",\n" + + " \"alias\": \"system\",\n" + + " \"meta\": {\n" + + " \"keepAlive\": false\n" + + " },\n" + + " \"sort\": 2,\n" + + " \"soruce\": \"\"\n" + + " },\n" + + " {\n" + + " \"hasChildren\": true,\n" + + " \"children\": [],\n" + + " \"id\": \"modelManagmentNode\",\n" + + " \"name\": \"涓氬姟鍔熻兘妯″潡\",\n" + + " \"parentId\": \"VCIBaseTreeNode\",\n" + + " \"code\": \"modelManagmentNode\",\n" + + " \"alias\": \"model\",\n" + + " \"meta\": {\n" + + " \"keepAlive\": false\n" + + " },\n" + + " \"sort\": 3,\n" + + " \"soruce\": \"\"\n" + + " },\n" + + " {\n" + + " \"hasChildren\": true,\n" + + " \"children\": [],\n" + + " \"id\": \"operateNode\",\n" + + " \"name\": \"鎿嶄綔绫诲瀷绠$悊\",\n" + + " \"parentId\": \"VCIBaseTreeNode\",\n" + + " \"code\": \"operateNode\",\n" + + " \"alias\": \"operate\",\n" + + " \"meta\": {\n" + + " \"keepAlive\": false\n" + + " },\n" + + " \"sort\": 4,\n" + + " \"soruce\": \"\"\n" + + " },\n" + + " {\n" + + " \"hasChildren\": false,\n" + + " \"children\": [],\n" + + " \"id\": \"sysOptionNode\",\n" + + " \"name\": \"绯荤粺閰嶇疆\",\n" + + " \"parentId\": \"VCIBaseTreeNode\",\n" + + " \"code\": \"sysOptionNode\",\n" + + " \"alias\": \"sysOption\",\n" + + " \"meta\": {\n" + + " \"keepAlive\": false\n" + + " },\n" + + " \"sort\": 5,\n" + + " \"soruce\": \"\"\n" + + " },\n" + + " {\n" + + " \"hasChildren\": false,\n" + + " \"children\": [],\n" + + " \"id\": \"sysMonitorNode\",\n" + + " \"name\": \"绯荤粺杩愯鐩戞帶\",\n" + + " \"parentId\": \"VCIBaseTreeNode\",\n" + + " \"code\": \"sysMonitorNode\",\n" + + " \"alias\": \"sysMonitor\",\n" + + " \"meta\": {\n" + + " \"keepAlive\": false\n" + + " },\n" + + " \"sort\": 5,\n" + + " \"soruce\": \"\"\n" + + " }\n" + + " ],\n" + + " \"id\": \"VCIBaseTreeNode\",\n" + + " \"name\": \"绯荤粺妯″潡閰嶇疆\",\n" + + " \"parentId\": \"\",\n" + + " \"code\": \"rootNode\",\n" + + " \"alias\": \"root\",\n" + + " \"meta\": {\n" + + " \"keepAlive\": false\n" + + " },\n" + + " \"sort\": 1,\n" + + " \"soruce\": \"\"\n" + + "}"; + functionVOList.add(JSON.parseObject(menuJson, MenuVO.class)); + return functionVOList; } public List<MenuVO> findChildFunctionVO(String parentOid,Map<String, List<FunctionInfo>> map) throws PLException { @@ -294,7 +416,6 @@ 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(); @@ -310,9 +431,6 @@ return null; } - - - /** * 鑾峰彇鎵�鏈夌殑鍔熻兘鑿滃崟 * @@ -324,7 +442,7 @@ public List<Tree> treeAllMenu(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) { List<SmFunctionVO> functionVOList = self.selectAllFunction().stream().filter(s -> s.isDisplayFlag() && resourceControlTypeEnum.getValue().equalsIgnoreCase(s.getResourceControlType())).collect(Collectors.toList()); if(!treeQueryObject.isQueryAllLevel() && StringUtils.isNotBlank(treeQueryObject.getParentOid())){ - functionVOList = functionVOList.stream().filter(s->treeQueryObject.getParentOid().equalsIgnoreCase(s.getParentFunctionId())).collect(Collectors.toList()); + functionVOList = functionVOList.stream().filter(s->treeQueryObject.getParentOid().equalsIgnoreCase(s.getParentFunctionId())).collect(Collectors.toList()); } return dos2Trees(functionVOList.stream().sorted(Comparator.comparing(s -> s.getOrderNum())).collect(Collectors.toList()),treeQueryObject == null?null:treeQueryObject.getParentOid()); } @@ -341,7 +459,7 @@ List<Tree> childList = new ArrayList<>(); functionVOList.stream().forEach(s -> { Tree tree = DO2Tree(s); - if (tree.getParentId() == null || tree.getParentId().equals(rootId) || ROOT_MENU_Id.equalsIgnoreCase(tree.getParentId())) { + if (tree.getParentId() == null || tree.getParentId().equals(rootId) || ROOT_MENU_ID.equalsIgnoreCase(tree.getParentId())) { rootList.add(tree); } else { childList.add(tree); @@ -385,7 +503,7 @@ public List<Tree> treeFunctionByParent(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) { List<SmFunctionVO> functionVOList = self.selectAllFunction().stream().filter(s -> s.isDisplayFlag() && resourceControlTypeEnum.getValue().equalsIgnoreCase(s.getResourceControlType())).collect(Collectors.toList()); if(!treeQueryObject.isQueryAllLevel() && StringUtils.isNotBlank(treeQueryObject.getParentOid())){ - functionVOList = functionVOList.stream().filter(s->treeQueryObject.getParentOid().equalsIgnoreCase(s.getParentFunctionId())).collect(Collectors.toList()); + functionVOList = functionVOList.stream().filter(s->treeQueryObject.getParentOid().equalsIgnoreCase(s.getParentFunctionId())).collect(Collectors.toList()); } return dos2Trees(functionVOList,treeQueryObject == null?null:treeQueryObject.getParentOid()); } @@ -401,12 +519,12 @@ public List<Tree> treeCurrentFunctionByParent(TreeQueryObject treeQueryObject, ResourceControlTypeEnum resourceControlTypeEnum) { SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfo(); List<SmFunctionVO> functionVOList =self.selectAllFunction().stream().filter(s -> s.isDisplayFlag() - && resourceControlTypeEnum.getValue().equalsIgnoreCase(s.getResourceControlType()) + && resourceControlTypeEnum.getValue().equalsIgnoreCase(s.getResourceControlType()) && !CollectionUtils.isEmpty(sessionInfo.getFunctionOids()) && sessionInfo.getFunctionOids().contains(s.getOid()) ).collect(Collectors.toList()); if(!treeQueryObject.isQueryAllLevel() && StringUtils.isNotBlank(treeQueryObject.getParentOid())){ - functionVOList = functionVOList.stream().filter(s->treeQueryObject.getParentOid().equalsIgnoreCase(s.getParentFunctionId())).collect(Collectors.toList()); + functionVOList = functionVOList.stream().filter(s->treeQueryObject.getParentOid().equalsIgnoreCase(s.getParentFunctionId())).collect(Collectors.toList()); } return dos2Trees(functionVOList,treeQueryObject == null?null:treeQueryObject.getParentOid()); } -- Gitblit v1.9.3