From 841588bc33c7ab2f547b046ada0d91bc4be67ade Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期一, 24 六月 2024 17:56:10 +0800
Subject: [PATCH] 增加按钮的权限控制

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java |   74 ++++++++++++++++++++++---------------
 1 files changed, 44 insertions(+), 30 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java
index d430dcd..6d760d5 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java
@@ -4,15 +4,13 @@
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.XmlFriendlyNameCoder;
 import com.thoughtworks.xstream.io.xml.XppDriver;
-import com.vci.client.common.providers.ClientServiceProvider;
 import com.vci.corba.common.PLException;
+import com.vci.corba.framework.data.RoleRightInfo;
 import com.vci.corba.portal.data.*;
 import com.vci.starter.web.annotation.log.VciUnLog;
 import com.vci.starter.web.exception.VciBaseException;
-import com.vci.starter.web.util.BeanUtil;
-import com.vci.starter.web.util.LangBaseUtil;
-import com.vci.starter.web.util.VciBaseUtil;
-import com.vci.starter.web.util.VciDateUtil;
+import com.vci.starter.web.pagemodel.SessionInfo;
+import com.vci.starter.web.util.*;
 import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
 import com.vci.web.enumpck.UIComponentDisplayTypeEnum;
 import com.vci.web.enumpck.UIComponentTypeEnum;
@@ -131,8 +129,7 @@
 	public void checkInvalidXmlVI() {
 		PortalVI[] portalVIS = null;
 		try {
-			portalVIS = ClientServiceProvider.getUIService().getAllPortalVI();
-			// portalVIS = platformClientUtil.getPortalService().getAllPortalVI();
+			portalVIS = platformClientUtil.getUIService().getAllPortalVI();
 		} catch (PLException vciError) {
 			throw WebUtil.getVciBaseException(vciError);
 		}
@@ -156,7 +153,7 @@
 	public List<UIFormDefineVO> selectAllForm() {
 		PortalVI[] portalVIS = null;
 		try {
-			portalVIS = ClientServiceProvider.getUIService().getAllPortalVI();
+			portalVIS = platformClientUtil.getUIService().getAllPortalVI();
 		} catch (PLException vciError) {
 			throw WebUtil.getVciBaseException(vciError);
 		}
@@ -405,7 +402,7 @@
 		if(!QUERY_BY_CACHE){
 			PortalVI portalVI = null;
 			try {
-				portalVI = ClientServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
+				portalVI = platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
 			} catch (PLException vciError) {
 				throw WebUtil.getVciBaseException(vciError);
 			}
@@ -447,7 +444,7 @@
 	public List<UITableDefineVO> selectAllTable() {
 		PortalVI[] portalVIS = null;
 		try {
-			portalVIS = ClientServiceProvider.getUIService().getAllPortalVI();
+			portalVIS = platformClientUtil.getUIService().getAllPortalVI();
 		} catch (PLException vciError) {
 			throw WebUtil.getVciBaseException(vciError);
 		}
@@ -523,7 +520,7 @@
 			self.selectAllForm().stream().filter(s -> formOid.equalsIgnoreCase(s.getOid())).findAny().orElseGet(() -> null);
 		}else{
 			try {
-				formDefineVO = formDO2VO(ClientServiceProvider.getUIService().getPortalVIById(formOid));
+				formDefineVO = formDO2VO(platformClientUtil.getUIService().getPortalVIById(formOid));
 			} catch (PLException vciError) {
 				throw WebUtil.getVciBaseException(vciError);
 			}
@@ -723,7 +720,7 @@
 		if(!QUERY_BY_CACHE){
 			PortalVI portalVI = null;
 			try {
-				portalVI = ClientServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
+				portalVI = platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
 			} catch (PLException vciError) {
 				throw WebUtil.getVciBaseException(vciError);
 			}
@@ -764,8 +761,7 @@
 	@VciUnLog
 	public List<UIActionVO> selectAllAction() {
 		try {
-//			return actionDO2VOs(Arrays.stream(platformClientUtil.getPortalService().getAllPLAction()).collect(Collectors.toList()));
-			return actionDO2VOs(Arrays.stream(ClientServiceProvider.getUIService().getAllPLAction()).collect(Collectors.toList()));
+			return actionDO2VOs(Arrays.stream(platformClientUtil.getUIService().getAllPLAction()).collect(Collectors.toList()));
 		} catch (PLException vciError) {
 			throw WebUtil.getVciBaseException(vciError);
 		}
@@ -1006,7 +1002,7 @@
 	 */
 	private List<UILayoutVO> listLayoutByContent(String pkContent){
 		try {
-			return UILayoutDO2VOs(Arrays.stream(ClientServiceProvider.getUIService().getPLTabPagesByPageDefinationOId(pkContent)).collect(Collectors.toList()),true);
+			return UILayoutDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(pkContent)).collect(Collectors.toList()),true);
 		} catch (PLException vciError) {
 			throw WebUtil.getVciBaseException(vciError);
 		}
@@ -1129,8 +1125,7 @@
 			if(queryDetail){
 				//鍗曚釜鐨勶紝鐩存帴鑾峰彇
 				try {
-					layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(ClientServiceProvider.getUIService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true));
-//					layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(platformClientUtil.getPortalService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true));
+					layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true));
 				} catch (PLException vciError) {
 					throw WebUtil.getVciBaseException(vciError);
 				}
@@ -1176,7 +1171,7 @@
 		}
 		if(!QUERY_BY_CACHE){
 			try {
-				return uiComponentDO2VO(ClientServiceProvider.getUIService().getPLPageDefinationById(componentOid),true);
+				return uiComponentDO2VO(platformClientUtil.getUIService().getPLPageDefinationById(componentOid),true);
 			} catch (PLException vciError) {
 				throw WebUtil.getVciBaseException(vciError);
 			}
@@ -1248,8 +1243,7 @@
 					componentVO.setTableDefineVO(tableDefineVOMap.get(key));
 				}else{
 					try {
-						componentVO.setTableDefineVO(tableDO2VO(ClientServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true));
-						//componentVO.setTableDefineVO(tableDO2VO(platformClientUtil.getPortalService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true));
+						componentVO.setTableDefineVO(tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true));
 					} catch (PLException vciError) {
 						throw WebUtil.getVciBaseException(vciError);
 					}
@@ -1285,7 +1279,7 @@
 					tableDefineVO= tableDefineVOMap.get(key);
 				}else{
 					try {
-						tableDefineVO = tableDO2VO(ClientServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true);
+						tableDefineVO = tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true);
 					} catch (PLException vciError) {
 						throw WebUtil.getVciBaseException(vciError);
 					}
@@ -1336,7 +1330,7 @@
 					componentVO.setFormDefineVO(formDefineVOMap.get(key));
 				}else{
 					try {
-						componentVO.setFormDefineVO(formDO2VO(ClientServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId())));
+						componentVO.setFormDefineVO(formDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId())));
 					} catch (PLException vciError) {
 						throw WebUtil.getVciBaseException(vciError);
 					}
@@ -1386,7 +1380,32 @@
 	@Override
 	public List<UIButtonDefineVO> listButtonByComponent(String pkComponent){
 		try {
-			List<UIButtonDefineVO> buttonDefineVOS = buttonDO2VOs(Arrays.stream(ClientServiceProvider.getUIService().getPLTabButtonsByTableOId(pkComponent)).collect(Collectors.toSet())).stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
+			List<UIButtonDefineVO> buttonDefineVOS = buttonDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLTabButtonsByTableOId(pkComponent)).collect(Collectors.toSet())).stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
+
+			Map<String,RoleRightInfo> allRightRoleMap = new HashMap<>();
+			RoleRightInfo[] bts = platformClientUtil.getFrameworkService().getRoleRightByUserName("bt");
+			Map<String,Long> rightMap = new HashMap<String,Long>();
+			for(RoleRightInfo obj:bts){
+				allRightRoleMap.put(obj.funcId, obj);
+				rightMap.put(obj.funcId,obj.rightValue);
+			}
+			//寰幆瀵规寜閽潈闄愯繘琛屽垽鏂紝娌℃湁鏉冮檺鐨勫皢绉婚櫎buttonDefineVOS瀵硅薄
+			Iterator<UIButtonDefineVO> buttonDefineVO = buttonDefineVOS.iterator();
+			while (buttonDefineVO.hasNext()){
+				UIButtonDefineVO buttonDefine = buttonDefineVO.next();
+				if(rightMap.containsKey(buttonDefine.getPkComponent())) {
+					Long rightValue = rightMap.get(buttonDefine.getPkComponent());
+					int nodeValue = buttonDefine.getOrderNum();
+					if (nodeValue >= 0 && nodeValue <= 63) {
+						//杩涜浣嶄笌鎿嶄綔锛屽鏋滅浉绛夊垯琛ㄧず鍏锋湁褰撳墠鎿嶄綔鐨勬潈闄�
+						long preValue = (rightValue >> nodeValue) & 1;
+						if (preValue != 1) {
+							buttonDefineVO.remove();
+						}
+					}
+				}
+			}
+
 			if(CollectionUtils.isEmpty(buttonDefineVOS)){
 				return buttonDefineVOS;
 			}
@@ -1460,8 +1479,7 @@
 				//鏌ユ壘鍙傛暟
 				Map<String,String> params = new HashMap<>();
 				try {
-					//PLCommandParameter[] parameters = platformClientUtil.getPortalService().getPLCommandParametersByCommandOId(buttonVO.getOid());
-					PLCommandParameter[] parameters = ClientServiceProvider.getUIService().getPLCommandParametersByCommandOId(buttonVO.getOid());
+					PLCommandParameter[] parameters = platformClientUtil.getUIService().getPLCommandParametersByCommandOId(buttonVO.getOid());
 					if(parameters!=null && parameters.length > 0){
 						for(PLCommandParameter parameter: parameters){
 							params.put(parameter.plKey,parameter.plValue);
@@ -1526,10 +1544,7 @@
 		WebUtil.alertNotNull(btmType,"涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨�",id,"UI涓婁笅鏂囩殑缂栧彿");
 		PLUILayout[] obj = null;
 		try {
-			obj = ClientServiceProvider.getUIService().getPLUILayoutsByRelatedType(btmType);
-//			obj = platformClientUtil.getPortalService().getPLPageLayoutDefinationsByRelatedType(btmType);
-//			obj = ServiceProvider.geT(btmType);
-
+			obj = platformClientUtil.getUIService().getPLUILayoutsByRelatedType(btmType);
 		} catch (PLException vciError) {
 			throw WebUtil.getVciBaseException(vciError);
 		}
@@ -1541,7 +1556,6 @@
 			}
 		}
 		return UIContentDO2VO(context,true);
-//		return UIContentDO2VO(null,true);
 	}
 }
 

--
Gitblit v1.9.3