From 7a171b5193feef1d201b7d273b64ba2aebaddcda Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 26 六月 2024 18:22:01 +0800 Subject: [PATCH] 成员管理:分配角色、分配部门、分配部门界面查询、角色角色界面查询等接口添加 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java | 63 ++++++++++++++++++++++++++++++- 1 files changed, 60 insertions(+), 3 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java index 6ad8bf9..c71204f 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java @@ -1,11 +1,14 @@ package com.vci.frameworkcore.compatibility.impl; +import com.vci.corba.common.PLException; +import com.vci.corba.common.data.UserEntityInfo; import com.vci.corba.omd.data.BusinessObject; import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; import com.vci.frameworkcore.constant.FrameWorkBtmTypeConstant; import com.vci.frameworkcore.enumpck.RoleClassifyEnum; import com.vci.frameworkcore.enumpck.RoleControlAreaEnum; import com.vci.frameworkcore.model.SmRoleForPlatform1; +import com.vci.frameworkcore.pagemodel.OrgDepartmentVO; import com.vci.frameworkcore.pagemodel.SmRoleVO; import com.vci.omd.utils.ObjectTool; import com.vci.starter.web.constant.QueryOptionConstant; @@ -18,6 +21,7 @@ import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.web.properties.WebProperties; import com.vci.web.service.WebBoServiceI; +import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; @@ -26,6 +30,7 @@ import org.springframework.util.CollectionUtils; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; @@ -45,6 +50,12 @@ private WebBoServiceI boService; /** + * 骞冲彴璋冪敤瀹㈡埛绔� + */ + @Autowired + private PlatformClientUtil platformClientUtil; + + /** * 鏍规嵁瑙掕壊涓婚敭鑾峰彇瑙掕壊鐨勪俊鎭� * @param roleOid 瑙掕壊涓婚敭 * @return 瑙掕壊鐨勬樉绀哄璞★紝濡傛灉瑙掕壊涓嶅瓨鍦ㄥ垯杩斿洖null锛屼笉浼氭姏鍑哄紓甯� @@ -61,6 +72,7 @@ } return platformRole2SmRoleVO(role); } + /** * 鎵归噺鑾峰彇瑙掕壊鐨勪俊鎭� 锛堟牴鎹鑹蹭富閿級 * @param roleOidCollections 瑙掕壊涓婚敭鐨勯泦鍚堬紝鍙互瓒呰繃1000涓� @@ -84,6 +96,7 @@ }); return platformRole2SmRoleVOs(roles); } + /** * 鑾峰彇瑙掕壊鐨勫垪琛紝榛樿浼氫互瑙掕壊鍚嶅崌搴忔帓鍒楋紝瑙掕壊鐨勭紪杈戦〉闈㈠垪琛ㄤ笉瑕佷娇鐢ㄨ繖涓帴鍙� * @param queryMap 鏌ヨ鏉′欢 @@ -109,6 +122,7 @@ } return dataGrid; } + /** * 鏍规嵁瑙掕壊涓婚敭鑾峰彇瑙掕壊鐨勫鍚� * @param roleOid 瑙掕壊涓婚敭 @@ -119,6 +133,7 @@ WebUtil.alertNotNull(roleOid,"瑙掕壊涓婚敭"); return getRoleByRoleOid(roleOid).getName(); } + /** * 鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇鍏宠仈鐨勮鑹� * @param userOid 鐢ㄦ埛涓婚敭 @@ -170,6 +185,7 @@ } return platformRole2SmRoleVOs(roles); } + /** * 鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇鍏宠仈鐨勮鑹� * @param userOid 鐢ㄦ埛涓婚敭 @@ -210,6 +226,7 @@ } return gridRoles(queryMap,pageHelper); } + /** * 鑾峰彇鏈叧鑱旀煇涓敤鎴风殑瑙掕壊 * @param userOid 鐢ㄦ埛涓婚敭 @@ -221,6 +238,7 @@ Map<String, String> queryMap) { return listRoleByUserOid(userOid,queryMap,true); } + /** * 鑾峰彇鏈叧鑱旀煇涓敤鎴风殑瑙掕壊 * @param userOid 鐢ㄦ埛涓婚敭 @@ -233,6 +251,7 @@ Map<String, String> queryMap, PageHelper pageHelper) { return gridRoleByUserOid(userOid,queryMap,pageHelper,true); } + /** * 鎵归噺鏍规嵁鐢ㄦ埛鐨勪富閿潵鑾峰彇瑙掕壊 * @param userOidCollection 鐢ㄦ埛涓婚敭闆嗗悎 @@ -255,16 +274,19 @@ List<BusinessObject> cbos = boService.queryBySql(sql, null); if(!CollectionUtils.isEmpty(cbos)){ cbos.stream().forEach(cbo->{ - String userOid = ObjectTool.getBOAttributeValue(cbo,"pluseruid"); + String userOid = ObjectTool.getNewBOAttributeValue(cbo,"pluseruid"); List<String> roleOids = userRoleOidMap.getOrDefault(userOid,new ArrayList<>()); - roleOids.add(ObjectTool.getBOAttributeValue(cbo,"plroleuid")); + roleOids.add(ObjectTool.getNewBOAttributeValue(cbo,"plroleuid")); userRoleOidMap.put(userOid,roleOids); }); } } }); if(!CollectionUtils.isEmpty(roleVOList)){ - Map<String, SmRoleVO> roleVOMap = roleVOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); + //杩欏効搴旇瀵箁oleVOList鍋氫竴娆″幓閲嶅鐞嗭紝鍥犱负鑲畾浼氭湁閲嶅鐨勮鑹茶鏌ュ嚭鏉� + Map<String, SmRoleVO> roleVOMap = roleVOList.stream() + .collect(Collectors.toMap(SmRoleVO::getOid, Function.identity(), (existing, replacement) -> existing)); + //Map<String, SmRoleVO> roleVOMap = roleVOList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); Map<String, List<SmRoleVO>> userRoleVOMap = new HashMap<>(); userRoleOidMap.forEach((userOid,roleOids)->{ List<SmRoleVO> roleVOS = new ArrayList<>(); @@ -279,6 +301,7 @@ } return new HashMap<>(); } + /** * 鏍规嵁鏉冮檺涓婚敭鑾峰彇鍏宠仈鐨勮鑹� * @param functionOid 鏉冮檺涓婚敭 @@ -444,6 +467,7 @@ } return new HashMap<>(); } + /** * 鍙傜収瑙掕壊鐨勫垪琛紝涓夊憳绠$悊鐨勪笁涓鑹蹭笉浼氭樉绀� * @param queryMap 鏌ヨ鏉′欢 @@ -457,6 +481,7 @@ //鑰佸钩鍙版病鏈夌敓鏁堢姸鎬� return gridRoles(queryMap, pageHelper); } + /** * 瑙掕壊鐨勬爲褰㈠睍绀猴紝甯哥敤浜庤鑹查�夋嫨鐢ㄦ埛鐨勯〉闈娇鐢� * @param treeQueryObject 鏍戞煡璇㈠璞� @@ -488,6 +513,38 @@ } /** + * 璇ユ柟娉曞彧鏀寔涓�娆″彧鍏佽鍗曚釜鐢ㄦ埛鍒嗛厤澶氫釜瑙掕壊锛屼竴瀵瑰 + * @param userOid + * @param roleIds + * @return + */ + @Override + public boolean saveRights(String userOid, String[] roleIds) throws PLException { + VciBaseUtil.alertNotNull(userOid,"鐢ㄦ埛涓婚敭"); + //roleIds鍏佽涓虹┖锛屼负绌烘椂娓呯┖褰撳墠鐢ㄦ埛鐨勬潈闄� + //鍏堟煡閲� + if(Func.isNotEmpty(roleIds)){ + List<String> repeatRoleOidList = new ArrayList<>(); + //寰幆杩涜鏌ラ噸锛岄伩鍏峣n澶т簬1000 + WebUtil.switchCollectionForOracleIn(Arrays.asList(roleIds)).stream().forEach(deptoids->{ + String sql = "select pluseruid,plroleuid from pluserrole where pluseruid = '" + userOid + + "' and " + "plroleuid in ("+WebUtil.toInSql(deptoids.toArray(new String[0]))+")"; + List<BusinessObject> cbos = boService.queryBySql(sql, null); + if(!CollectionUtils.isEmpty(cbos)){ + cbos.stream().forEach(cbo->{ + repeatRoleOidList.add(ObjectTool.getNewBOAttributeValue(cbo,"plroleuid")); + }); + } + }); + //绉婚櫎閲嶅鐨� + List<String> tempList = new ArrayList<>(Arrays.asList(roleIds)); + tempList.removeAll(repeatRoleOidList); + roleIds = tempList.toArray(new String[tempList.size()]); + } + return platformClientUtil.getFrameworkService().saveRights(roleIds,new String[]{userOid},new UserEntityInfo()); + } + + /** * 瑙掕壊鐨勮浆鎹紝榛樿鍏ㄩ儴鏄痓s鎺у埗鐨勮鑹� * @param roleForPlatform1List 鍘熷钩鍙扮殑瑙掕壊 * @return 瑙掕壊鐨勬樉绀哄璞� -- Gitblit v1.9.3