From af99adcdd1198af865d091204b8566e2b81e389d Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 22 十月 2024 09:50:19 +0800 Subject: [PATCH] UI授权相关更改 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/utility/UIDataFetcher.java | 21 +++++- Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java | 13 +++- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java | 24 ++++---- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 11 ++- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 59 ++++++++++--------- 5 files changed, 75 insertions(+), 53 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java index 01c544c..4ef492d 100644 --- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java +++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/redis/RedisService.java @@ -397,9 +397,12 @@ public void increOnlineUser(String currentLoggedUserKey) { // 妫�鏌ラ敭鏄惁瀛樺湪 if (!redisTemplate.hasKey(currentLoggedUserKey)) { + //log.info("===========================閿笉瀛樺湪"); // 濡傛灉閿笉瀛樺湪锛屽垵濮嬪寲涓�0 redisTemplate.opsForValue().set(currentLoggedUserKey, 0); } + int currentCount = (int)redisTemplate.opsForValue().get(currentLoggedUserKey); + //log.info("===========================寮�濮嬭嚜澧�"+currentCount); // 鑷鍦ㄧ嚎鐢ㄦ埛鏁� redisTemplate.opsForValue().increment(currentLoggedUserKey); } @@ -410,10 +413,10 @@ */ public void decreOnlineUser(String currentLoggedUserKey) { // 妫�鏌ュ綋鍓嶅湪绾跨敤鎴锋暟 - Integer currentLoggedUser = (Integer)redisTemplate.opsForValue().get(currentLoggedUserKey); + Object obj = redisTemplate.opsForValue().get(currentLoggedUserKey); - if (currentLoggedUser != null) { - Integer currentCount = Integer.parseInt(redisTemplate.opsForValue().get(currentLoggedUserKey)+""); + if (obj != null) { + int currentCount = (int)redisTemplate.opsForValue().get(currentLoggedUserKey); if(currentCount > 0){ // 鑷噺鍦ㄧ嚎鐢ㄦ埛鏁� redisTemplate.opsForValue().decrement(currentLoggedUserKey); @@ -427,6 +430,10 @@ * @return */ public long getCurrentOnlineUserCount(String currentLoggedUserKey) { + Object obj = redisTemplate.opsForValue().get(currentLoggedUserKey); + if(obj == null){ + return 0L; + } return Long.parseLong(redisTemplate.opsForValue().get(currentLoggedUserKey)+""); } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java index d06887c..45b0f76 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java @@ -622,18 +622,18 @@ * @return * @throws PLException */ -/* @GetMapping( "/getRightListByRoleId") - @VciBusinessLog(operateName = "鏍规嵁瑙掕壊涓婚敭鑾峰彇宸叉巿鏉冪殑UI涓婚敭闆嗗悎") - public BaseResult getRightListByRoleId(String roleId){ - try { - return BaseResult.success(uiManagerService.getRightListByRoleId(roleId)); - }catch (Throwable e) { - e.printStackTrace(); - String exceptionMessage = "鑾峰彇宸叉巿鏉冧俊鎭椂閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); - logger.error(exceptionMessage); - return BaseResult.fail(exceptionMessage); - } - }*/ + /* @GetMapping( "/getRightListByRoleId") + @VciBusinessLog(operateName = "鏍规嵁瑙掕壊涓婚敭鑾峰彇宸叉巿鏉冪殑UI涓婚敭闆嗗悎") + public BaseResult getRightListByRoleId(String roleId){ + try { + return BaseResult.success(uiManagerService.getRightListByRoleId(roleId)); + }catch (Throwable e) { + e.printStackTrace(); + String exceptionMessage = "鑾峰彇宸叉巿鏉冧俊鎭椂閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + }*/ /*** * @param uiAuthorDTO 鍕鹃�夌殑闇�瑕佷繚瀛樼殑鏁版嵁瀵硅薄 diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java index d6ca935..aed9228 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java @@ -166,8 +166,8 @@ if(PortalVIType.Table.getName()==viType){ lableName=PortalVIType.Table.getLabel(); } - PortalVIVO portalVIVO=new PortalVIVO(); - PortalVI portalVI= platformClientUtil.getPortalService().getPortalVIById(id); + PortalVIVO portalVIVO = new PortalVIVO(); + PortalVI portalVI = platformClientUtil.getPortalService().getPortalVIById(id); if(portalVI==null||StringUtils.isBlank(portalVI.id)){ throw new VciBaseException("鏍规嵁涓婚敭鏈煡璇㈠埌鏁版嵁"); } @@ -1164,10 +1164,12 @@ List<String> allKeyList= getRefFormVIName(prmItemDO.getItemInObj()); List<String> itemOutFieldList =VciBaseUtil.str2List(prmItemDO.getItemOutFields()); List<String> itemKeyFieldList =VciBaseUtil.str2List(prmItemDO.getItemKeyFields()); - List<String> itemSelectOutFieldList= allKeyList.stream().filter(s ->!itemOutFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList()); + List<String> itemSelectOutFieldList= allKeyList.stream() + .filter(s -> !itemOutFieldList.contains(s)) + .collect(Collectors.toList()); prmItemVO.setItemSelectOutFieldList(itemSelectOutFieldList);//寰呴�夋嫨鐨勫睘鎬у瓧娈� prmItemVO.setItemOutFieldList(itemOutFieldList);//闇�瑕佷娇鐢ㄧ殑闆嗗悎 - // List<String> itemSearchFieldList= itemOutFieldList.stream().filter(s ->!CollectionUtils.isEmpty(itemKeyFieldList).stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList()); + // List<String> itemSearchFieldList= itemOutFieldList.stream().filter(s ->!CollectionUtils.isEmpty(itemKeyFieldList).stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList()); List<String> itemSearchFieldList=new ArrayList<>(); if(!CollectionUtils.isEmpty(itemKeyFieldList)){ itemSearchFieldList= itemOutFieldList.stream().filter(s ->!itemKeyFieldList.contains(s)).collect(Collectors.toList()); @@ -1288,6 +1290,7 @@ } return itemSeniorQueryBOList; } + private List<String> getRefFormVIName(String refFormOid){ List<String> keyList=new ArrayList<>(); try { 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 2301d4a..3f4e4fe 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 @@ -39,6 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.swing.tree.TreePath; import java.io.File; import java.util.*; import java.util.concurrent.TimeUnit; @@ -1700,11 +1701,11 @@ Map<String,RoleRightVO> roleRightVOMap = new HashMap<>(); if(StringUtils.isNotBlank(roleId)){ String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); - RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName); + RoleRightInfo[] rightInfos = platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName); List<RoleRightVO> roleRightVOList = roleRightDOO2VOS(Arrays.asList(rightInfos)); roleRightVOMap = roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO,(oldValue,newOldValue)->oldValue)); } - BizType[] bizTypes=osBtmServiceI.getBizTypes(type); + BizType[] bizTypes = osBtmServiceI.getBizTypes(type); List<Tree> treeList=new ArrayList<>(); Tree rootNode =new Tree("root","鍔熻兘妯″潡","root"); rootNode.setLevel(0); @@ -1721,9 +1722,8 @@ bizTypeTree.setParentId(rootNode.getOid()); bizTypeTree.setParentName(rootNode.getText()); bizTypeTree.setParentBtmName(bizTypes[i].name); - //long startTime1 = System.currentTimeMillis(); - List<PLUILayout> contextList = uiDataFetcher.getContext(bizTypes[i].name); + List<PLUILayout> contextList = uiDataFetcher.getContext(bizTypes[i].name/*+context*/); //long endTime1 = System.currentTimeMillis(); //System.out.println("============================================鑾峰彇UI瀹氫箟鏁版嵁寮曟搸鑰楁椂锛�"+((endTime1-startTime1)/1000)+"s"); @@ -1774,31 +1774,31 @@ conditionMap.put("context",uiAuthorDTO.getContext()); conditionMap.put("showCheckBox","true"); treeQueryObject.setConditionMap(conditionMap); - List<Tree> treeList=this.getUIAuthor(treeQueryObject); - HashMap<String,Tree> allTreeMap=new HashMap<>(); - Map<String,RoleRightDTO> roleRightVOMap=new HashMap<>(); + List<Tree> treeList = this.getUIAuthor(treeQueryObject); + HashMap<String,Tree> allTreeMap = new HashMap<>(); + Map<String,RoleRightDTO> roleRightVOMap = new HashMap<>(); if(!CollectionUtil.isEmpty(treeList)){ 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)); + 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(); + List<RoleRightDTO> roleRightDTOList = new ArrayList<>(); + List<Tree> selectTreeList = uiAuthorDTO.getSelectTreeList(); getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightVOMap,roleRightDTOList); SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); String currentUserName = sessionInfo.getUserId(); - boolean isDeveloper= rightControlUtil.isDeveloper(currentUserName); - List<RoleRightInfo> roleRightInfoList= roleRightDTOO2InfoS(roleRightDTOList); - UserEntityInfo info=new UserEntityInfo(); + //boolean isDeveloper = rightControlUtil.isDeveloper(currentUserName); + List<RoleRightInfo> roleRightInfoList = roleRightDTOO2InfoS(roleRightDTOList); + UserEntityInfo info = new UserEntityInfo(); info.modules="UI鎺堟潈"; - info.userName=currentUserName; + info.userName = currentUserName; try { - res= platformClientUtil.getFrameworkService().saveRoleRight(roleRightInfoList.toArray(new RoleRightInfo[]{}),uiAuthorDTO.getRoleId(),currentUserName,info); + res = platformClientUtil.getFrameworkService().saveRoleRight(roleRightInfoList.toArray(new RoleRightInfo[]{}),uiAuthorDTO.getRoleId(),currentUserName,info); }catch (PLException e){ - throw new Exception("淇濆瓨澶辫触锛�"+e.getMessage()); + throw new Exception("淇濆瓨澶辫触锛�" + e.getMessage()); } } return res; @@ -1811,15 +1811,15 @@ * @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(); - Map<String,RoleRightDTO> roleRightDTOMap=new HashMap<>(); + private void getSelectedRoleRightObjs(String roleOid, List<Tree> selectTreeList, HashMap<String,Tree> allTreeMap, Map<String,RoleRightDTO> allRoleRightDTOMap, List<RoleRightDTO> roleRightDTOList){ + //Date date=new Date(); + Map<String,RoleRightDTO> roleRightDTOMap = new HashMap<>(); if(!CollectionUtil.isEmpty(selectTreeList)){ selectTreeList.stream().forEach(tree -> { - String oid=tree.getOid(); + String oid = tree.getOid(); if(allTreeMap.containsKey(oid)){ - tree= allTreeMap.get(oid); - Object data= tree.getData(); + tree = allTreeMap.get(oid); + Object data = tree.getData(); if (data instanceof String) { getRightValue(roleOid, tree, allTreeMap, false, roleRightDTOMap);//鍚戜笅鑾峰彇鎵�鏈夋ā鍧楃殑鏉冮檺鍊� } else if (!(data instanceof PLTabButton)) {//涓氬姟绫诲瀷 @@ -1830,16 +1830,17 @@ if(allTreeMap.containsKey(parrentId)){ SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); String currentUserName = sessionInfo.getUserId(); - boolean isDeveloper= rightControlUtil.isDeveloper(currentUserName); + boolean isDeveloper = rightControlUtil.isDeveloper(currentUserName); Tree parentNode= allTreeMap.get(parrentId); String funcId = parentNode.getOid(); - getRightValue(roleOid,tree, allTreeMap, true, roleRightDTOMap);//鍚戜笂澶勭悊璇ユ搷浣滅埗绾х殑涓婄骇妯″潡鏉冮檺(涓嶅寘鍚埗鑺傜偣) + getRightValue(roleOid, tree, allTreeMap, true, roleRightDTOMap);//鍚戜笂澶勭悊璇ユ搷浣滅埗绾х殑涓婄骇妯″潡鏉冮檺(涓嶅寘鍚埗鑺傜偣) if(!roleRightDTOMap.containsKey(funcId)){ RoleRightDTO roleRightDTO = new RoleRightDTO(); roleRightDTO.setId(ObjectUtility.getNewObjectID36());//涓婚敭 roleRightDTO.setFuncId(funcId); if(isDeveloper) { - roleRightDTO.setRightType((short) 1);//鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + //鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + roleRightDTO.setRightType((short) 1); }else{ roleRightDTO.setRightType((short) 2); } @@ -1863,7 +1864,7 @@ }); /* allRoleRightDTOMap.putAll(roleRightDTOMap.entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry:: getValue)));*/ - List<RoleRightDTO> newRoleRightDTOList=Optional.ofNullable(roleRightDTOMap).orElseGet(()->new HashMap<String,RoleRightDTO>()).values().stream().collect(Collectors.toList()); + List<RoleRightDTO> newRoleRightDTOList = Optional.ofNullable(roleRightDTOMap).orElseGet(()->new HashMap<String,RoleRightDTO>()).values().stream().collect(Collectors.toList()); roleRightDTOList.addAll(newRoleRightDTOList); } } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/utility/UIDataFetcher.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/utility/UIDataFetcher.java index a3c0088..c889347 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/utility/UIDataFetcher.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/utility/UIDataFetcher.java @@ -49,16 +49,27 @@ //long e = System.currentTimeMillis(); //System.out.println(allContext.length + " 1: " + (e - s)); //s = System.currentTimeMillis(); - List<PLUILayout> contextList = null; + List<PLUILayout> relatedTypeList = null; + //List<PLUILayout> contextList = null; for (PLUILayout context : allContext) { if (contextMap.get(context.plRelatedType) == null) { - contextList = new ArrayList<PLUILayout>(); - contextMap.put(context.plRelatedType, contextList); + relatedTypeList = new ArrayList<>(); + contextMap.put(context.plRelatedType, relatedTypeList); } else { - contextList = contextMap.get(context.plRelatedType); + relatedTypeList = contextMap.get(context.plRelatedType); } - contextList.add(context); + relatedTypeList.add(context); + //澶勭悊btmName+context鏂瑰紡瀛樼殑鏁版嵁 + /*if(contextMap.get(context.plRelatedType + "-" + context.plOId) == null){ + contextList = new ArrayList<>(); + contextMap.put(context.plRelatedType + "-" + context.plOId,contextList); + }else{ + contextList = contextMap.get(context.plRelatedType + "-" + context.plOId); + } + contextList.add(context);*/ } + + //e = System.currentTimeMillis(); //System.out.println("2: " + (e - s)); //鍒濆鍖栨墍鏈夌殑椤电 -- Gitblit v1.9.3