From e937d0111a52e2c13c50bbc3386d20a12d125899 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 06 九月 2024 10:54:54 +0800
Subject: [PATCH] 链接类型查询模板
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java | 316 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 307 insertions(+), 9 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 ea1bf1a..daa7f5c 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
@@ -4,13 +4,11 @@
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;
@@ -395,12 +393,16 @@
throw new VciBaseException(String.valueOf(e.code),e.messages);
}
}
- }else if(parentId.equals("sysOptionNode")){
+ }else if(parentId.equals("operateNode")){
//鍔犺浇鎵�鏈夋搷浣�
try{
//灏嗚繑鍥炵殑鑺傜偣澶栧眰濂椾笂褰撳墠鐖惰妭鐐�
MenuVO parentNode = JsonConfigReader.getSysModuleConf().getOperateNode();
- List<MenuVO> menuVOS = new ArrayList<>();
+ //濡傛灉鏌ヨ鐨勬槸绗竴灞傝妭鐐瑰氨闇�瑕佺洿鎺ヨ繑鍥瀞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];
@@ -416,10 +418,8 @@
menuVO.setSort((int) operateInfo.seq);
menuVO.setModeType("operateObject");
menuVO.setHasChildren(false);
- menuVOS.add(menuVO);
+ menuVOList.add(menuVO);
}
- parentNode.setChildren(menuVOS);
- menuVOList.add(parentNode);
}catch (PLException e) {
e.printStackTrace();
throw new VciBaseException(String.valueOf(e.code),new String[]{VciBaseUtil.getExceptionMessage(e)});
@@ -506,6 +506,49 @@
functionVOList.add(functionVO);
}
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);
+ }
+ }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);
+ }
+ }else{
+ functionVO.setHasChildren(false);
+ }
}
@Override
@@ -856,4 +899,259 @@
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);
+ findChildAuthFunctionVO(functionVO, isAll);
+// 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);
+ }
+ return functionVOList;
+
+
+
+// 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();
+// }
+// //濡傛灉鏌ヨ鐨勬槸绗竴灞傝妭鐐瑰氨闇�瑕佺洿鎺ヨ繑鍥瀞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("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];
+// 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;
+ }
}
--
Gitblit v1.9.3