From a13255b4129ee8a7a7b7e1ecd8e02dd2c78f7c17 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期四, 16 一月 2025 16:19:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java |   51 +++++++++++++++++++++++----------------------------
 1 files changed, 23 insertions(+), 28 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 4f00074..e989fdf 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
@@ -894,7 +894,7 @@
 	 */
 	@VciUnLog
 	@Override
-	public UIContentVO UIContentDO2VO(PLUILayout pageLayoutDefination, boolean queryDetail,Map<String, RoleRightVO> roleRightMap){
+	public UIContentVO UIContentDO2VO(PLUILayout pageLayoutDefination, boolean queryDetail,Map<String, List<RoleRightVO>> roleRightMap){
 		UIContentVO contentVO = new UIContentVO();
 		if(pageLayoutDefination !=null){
 			contentVO.setOid(pageLayoutDefination.plOId);
@@ -1014,7 +1014,7 @@
 	 * @param pkContent UI涓婁笅鏂囩殑涓婚敭
 	 * @return 涓婁笅鏂�
 	 */
-	private List<UILayoutVO> listLayoutByContent(String pkContent,Map<String, RoleRightVO> roleRightMap){
+	private List<UILayoutVO> listLayoutByContent(String pkContent,Map<String, List<RoleRightVO>> roleRightMap){
 		try {
 			List<PLTabPage> tabPageList = Arrays.stream(platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(pkContent)).collect(Collectors.toList());
 			//杩囨护鎺夋病鏈夎闂潈闄愮殑UI
@@ -1030,7 +1030,7 @@
 	 * @param tabPageList
 	 * @param roleRightMap
 	 */
-	private List<PLTabPage> filterTabPageByRoleRight(List<PLTabPage> tabPageList, Map<String, RoleRightVO> roleRightMap){
+	private List<PLTabPage> filterTabPageByRoleRight(List<PLTabPage> tabPageList, Map<String, List<RoleRightVO>> roleRightMap){
 		if(Func.isEmpty(roleRightMap) || Func.isEmpty(tabPageList)){
 			return tabPageList;
 		}
@@ -1060,7 +1060,7 @@
 	 * @param plPageDefinationList
 	 * @param roleRightMap
 	 */
-	private List<PLPageDefination> filterPageDefByRoleRight(List<PLPageDefination> plPageDefinationList, Map<String, RoleRightVO> roleRightMap){
+	private List<PLPageDefination> filterPageDefByRoleRight(List<PLPageDefination> plPageDefinationList, Map<String, List<RoleRightVO>> roleRightMap){
 		if(Func.isEmpty(roleRightMap) || Func.isEmpty(plPageDefinationList)){
 			return plPageDefinationList;
 		}
@@ -1136,7 +1136,7 @@
 	 * @param pages 鍖哄煙鐨勬暟鎹璞�
 	 * @return 鏄剧ず瀵硅薄
 	 */
-	private List<UILayoutVO> UILayoutDO2VOs(Collection<PLTabPage> pages, boolean queryDetail, Map<String, RoleRightVO> roleRightMap){
+	private List<UILayoutVO> UILayoutDO2VOs(Collection<PLTabPage> pages, boolean queryDetail, Map<String, List<RoleRightVO>> roleRightMap){
 		List<UILayoutVO> contentVOS = new ArrayList<>();
 		Map<String, OsAttributeVO> attributeVOMap;
 		if(pages != null && pages.size() > 0){
@@ -1174,7 +1174,7 @@
 	 * @return 鍖哄煙鐨勬樉绀哄璞�
 	 */
 	@VciUnLog
-	private UILayoutVO UILayoutDO2VO(PLTabPage page, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, RoleRightVO> roleRightMap){
+	private UILayoutVO UILayoutDO2VO(PLTabPage page, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, List<RoleRightVO>> roleRightMap){
 		UILayoutVO layoutVO = new UILayoutVO();
 		if(page !=null ){
 			layoutVO.setOid(page.plOId);
@@ -1267,19 +1267,6 @@
 		} catch (PLException vciError) {
 			throw WebUtil.getVciBaseException(vciError);
 		}
-		/*if(!QUERY_BY_CACHE){
-			try {
-				return uiComponentDO2VO(platformClientUtil.getUIService().getPLPageDefinationById(componentOid),true,attributeVOMap);
-			} catch (PLException vciError) {
-				throw WebUtil.getVciBaseException(vciError);
-			}
-		}else{
-			List<UIComponentVO> componentVOS = self.selectAllUIComponent();
-			List<UIComponentVO> componentVOList = Optional.ofNullable(componentVOS).orElseGet(() -> new ArrayList<>()).stream().filter(s -> s.getOid().equalsIgnoreCase(componentOid)).collect(Collectors.toList());
-			if(!CollectionUtils.isEmpty(componentVOList)){
-				return componentVOList.get(0);
-			}
-		}*/
 	}
 
 	/**
@@ -1287,7 +1274,7 @@
 	 * @param pages 鏁版嵁瀵硅薄
 	 * @return 鏄剧ず瀵硅薄
 	 */
-	private List<UIComponentVO> uiComponentDO2VOs(Collection<PLPageDefination> pages, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, RoleRightVO> roleRightMap){
+	private List<UIComponentVO> uiComponentDO2VOs(Collection<PLPageDefination> pages, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap, Map<String, List<RoleRightVO>> roleRightMap){
 		List<UIComponentVO> componentVOS = new ArrayList<>();
 		pages.stream().forEach(page->{
 			componentVOS.add(uiComponentDO2VO(page,queryDetail,attributeVOMap,roleRightMap));
@@ -1301,7 +1288,7 @@
 	 * @return 鏄剧ず瀵硅薄
 	 */
 	@VciUnLog
-	private UIComponentVO uiComponentDO2VO(PLPageDefination page, boolean queryDetail, Map<String, OsAttributeVO> attributeVOMap, Map<String, RoleRightVO> roleRightMap){
+	private UIComponentVO uiComponentDO2VO(PLPageDefination page, boolean queryDetail, Map<String, OsAttributeVO> attributeVOMap, Map<String, List<RoleRightVO>> roleRightMap){
 		UIComponentVO componentVO = new UIComponentVO();
 		if(page !=null){
 			componentVO.setOid(page.plOId);
@@ -1442,8 +1429,8 @@
 				treeDefineVO.setBtmType(componentDefineXO.getShowType());
 				treeDefineVO.setLinkType(componentDefineXO.getLinkType());
 				treeDefineVO.setLoadType("1".equalsIgnoreCase(componentDefineXO.getExpandMode())?"node":"all");
-				//TODO:杩欎釜灞炴�х幇鍦ㄧ敱閾炬帴绫诲瀷鏌ヨ妯℃澘閰嶇疆涓婃帶鍒讹紝涓嶅湪椤甸潰瀹氫箟鎺у埗浜�
-				//treeDefineVO.setOrientation("positive".equalsIgnoreCase(componentDefineXO.getOrientation())?false:true);
+				//TODO:杩欎釜灞炴�х幇鍦ㄧ敱閾炬帴绫诲瀷鏌ヨ妯℃澘閰嶇疆涓婃帶鍒讹紝涓嶅湪椤甸潰瀹氫箟鎺у埗浜�,浣嗘槸涓轰簡鍏煎浠ュ墠鐨刄I瀹氫箟鎵�浠ラ渶瑕佽�冭檻淇濈暀
+				treeDefineVO.setOrientation(componentDefineXO.getOrientation());
 				treeDefineVO.setShowImage("1".equalsIgnoreCase(componentDefineXO.getIsShowImage())?true:false);
 				treeDefineVO.setRootContent(componentDefineXO.getRootContent());
 				treeDefineVO.setFieldSep(StringUtils.isBlank(componentDefineXO.getSeparator())?",":componentDefineXO.getSeparator());
@@ -1479,7 +1466,7 @@
 	 * @return 鎸夐挳鐨勪俊鎭�
 	 */
 	@Override
-	public List<UIButtonDefineVO> listButtonByComponent(String pkComponent, Map<String, RoleRightVO> roleRightMap){
+	public List<UIButtonDefineVO> listButtonByComponent(String pkComponent, Map<String, List<RoleRightVO>> roleRightMap){
 		try {
 			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());
 			if(Func.isEmpty(roleRightMap)){
@@ -1491,12 +1478,20 @@
 			while (buttonDefineVO.hasNext()){
 				UIButtonDefineVO buttonDefine = buttonDefineVO.next();
 				if(roleRightMap.containsKey(buttonDefine.getPkComponent())) {
-					Long rightValue = roleRightMap.get(buttonDefine.getPkComponent()).getRightValue();
+					List<Long> rightValues = roleRightMap.get(buttonDefine.getPkComponent()).stream()
+							.map(e -> e.getRightValue()).collect(Collectors.toList());
 					int nodeValue = buttonDefine.getOrderNum();
 					if (nodeValue >= 0 && nodeValue <= 63) {
+						boolean authFlag = false;
 						//杩涜浣嶄笌鎿嶄綔锛屽鏋滅浉绛夊垯琛ㄧず鍏锋湁褰撳墠鎿嶄綔鐨勬潈闄�
-						long preValue = (rightValue >> nodeValue) & 1;
-						if (preValue != 1) {
+						for (Long rightValue : rightValues) {
+							long preValue = (rightValue >> nodeValue) & 1;
+							if (preValue == 1) {
+								authFlag = true;
+								break;
+							}
+						}
+						if(!authFlag){
 							buttonDefineVO.remove();
 						}
 					}
@@ -1655,7 +1650,7 @@
 			throw WebUtil.getVciBaseException(vciError);
 		}
 		// 1銆佹牴鎹綋鍓嶈鑹插垽鏂槸绠$悊浜哄憳杩樻槸鏅�氱敤鎴凤紙姝e父鏉ヨ鍙湁鏅�氱敤鎴锋墠浼氱敤鍒拌鏌ヨ鎺ュ彛锛�
-		Map<String, RoleRightVO> roleRightMap = uiManagerServiceI.getRoleRightMap(null);
+		Map<String, List<RoleRightVO>> roleRightMap = uiManagerServiceI.getRoleRightMap(null);
 		// 2銆佹寜鐓у綋鍓嶇櫥褰曠敤鎴锋煡璇㈡潈闄愶紙鍔熻兘鏉冮檺鍜孶I鎺堟潈鐨勬巿鏉冧俊鎭兘鏄斁鍦ㄥ悓涓�寮犺〃閲岀殑锛�
 		// 3銆佹壘鍑哄綋鍓嶈鏌ヨ鐨刄I涓婁笅鏂�
 		PLUILayout context = null;

--
Gitblit v1.9.3