From 77b00428891493e9ead0672623ce39b9b6461e13 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 22 十月 2024 21:53:56 +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/UIManagerServiceImpl.java | 38 ++++++++++++++++++++++++++++----------
1 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
index 3f4e4fe..c59c90b 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
@@ -1776,18 +1776,20 @@
treeQueryObject.setConditionMap(conditionMap);
List<Tree> treeList = this.getUIAuthor(treeQueryObject);
HashMap<String,Tree> allTreeMap = new HashMap<>();
- Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>();
+ //Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>();
if(!CollectionUtil.isEmpty(treeList)){
- if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){
+ /*if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){
String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
RoleRightInfo[] rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(uiAuthorDTO.getRoleId(),userName);
List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos));
roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVOO2DTO(roleRightVO),(oldValue,newValue)->oldValue));
- }
+ }*/
+
convertTreeDOO2Map(treeList,allTreeMap);
List<RoleRightDTO> roleRightDTOList = new ArrayList<>();
List<Tree> selectTreeList = uiAuthorDTO.getSelectTreeList();
- getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightVOMap,roleRightDTOList);
+ List<Tree> selectTreeList2 = this.authTreeListConvert(selectTreeList);
+ getSelectedRoleRightObjs_old(uiAuthorDTO.getRoleId(),selectTreeList2,allTreeMap,roleRightDTOList);
SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread();
String currentUserName = sessionInfo.getUserId();
//boolean isDeveloper = rightControlUtil.isDeveloper(currentUserName);
@@ -1805,14 +1807,30 @@
}
/**
+ * 鑾峰彇绛涢�夊悗鐨勬暟鎹�
+ * @param selectTreeList
+ */
+ private List<Tree> authTreeListConvert(List<Tree> selectTreeList){
+
+ // 鍒涘缓涓�涓寘鍚彟涓�涓泦鍚堜腑婊¤冻鏉′欢鐨� oid 鐨勯泦鍚�
+ List<String> validOids = selectTreeList.stream()
+ .filter(Tree::isChecked) // checked 涓� true
+ .map(Tree::getOid) // 鎻愬彇 oid
+ .collect(Collectors.toList());
+
+ return selectTreeList.stream()
+ .filter(tree -> tree.isChecked() && !validOids.contains(tree.getParentId())) // 杩囨护鏉′欢
+ .collect(Collectors.toList());
+ }
+
+ /**
*鏍规嵁鏉冮檺璁$畻涓婁笅鏉冮檺
* @param roleOid
* @param selectTreeList
* @param allTreeMap
* @param roleRightDTOList
*/
- private void getSelectedRoleRightObjs(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, Map<String,RoleRightDTO> allRoleRightDTOMap, List<RoleRightDTO> roleRightDTOList){
- //Date date=new Date();
+ private void getSelectedRoleRightObjs_old(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, List<RoleRightDTO> roleRightDTOList){
Map<String,RoleRightDTO> roleRightDTOMap = new HashMap<>();
if(!CollectionUtil.isEmpty(selectTreeList)){
selectTreeList.stream().forEach(tree -> {
@@ -1844,7 +1862,7 @@
}else{
roleRightDTO.setRightType((short) 2);
}
- roleRightDTO.setRightValue(1);// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0
+ roleRightDTO.setRightValue(countRightValue(parentNode,false));// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0
roleRightDTO.setRoleId(roleOid);//瑙掕壊ID
roleRightDTO.setCreateUser(currentUserName);//鍒涘缓鑰�
roleRightDTO.setCreateTime(VciDateUtil.date2Str(new Date(),""));//鍒涘缓鏃堕棿
@@ -1994,10 +2012,10 @@
*/
private long countRightValue(Tree node,boolean isAll){
long value = 0;
- for(int i = 0;i < node.getChildren().size();i++){
+ for(int i = 0; i < node.getChildren().size(); i++){
Tree childNode = (Tree)node.getChildren().get(i);
- if(isAll && node.getData() instanceof PLTabButton ){
- PLTabButton obj = (PLTabButton)node.getData();
+ if(isAll || node.getData() instanceof PLTabButton ){
+ PLTabButton obj = (PLTabButton)childNode.getData();
value += (long)Math.pow(2, obj.plSeq);//绱鍔犱笂鍚勪釜鎿嶄綔鐨勬潈闄愬��
}
}
--
Gitblit v1.10.0