From 889842eb8b64a0b72c449ce23ff21e4e8c935cae Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期五, 26 七月 2024 16:06:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java | 69 +++++++++++++++++++++++++--------- 1 files changed, 50 insertions(+), 19 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 4374a0a..1c44f0d 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,28 +1,25 @@ package com.vci.frameworkcore.compatibility.impl; +import com.vci.constant.FrameWorkBtmTypeConstant; import com.vci.corba.common.PLException; import com.vci.corba.common.data.UserEntityInfo; import com.vci.corba.framework.data.RoleInfo; import com.vci.corba.omd.data.BusinessObject; import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; -import com.vci.frameworkcore.constant.FrameWorkBtmTypeConstant; -import com.vci.frameworkcore.dto.SmRoleDTO; +import com.vci.constant.FrameWorkBtmTypeConstant; +import com.vci.dto.SmRoleDTO; +import com.vci.frameworkcore.compatibility.SmUserQueryServiceI; import com.vci.frameworkcore.enumpck.RoleClassifyEnum; import com.vci.frameworkcore.enumpck.RoleControlAreaEnum; -import com.vci.frameworkcore.model.SmRoleForPlatform1; -import com.vci.frameworkcore.model.dto.SmUserDTO; -import com.vci.frameworkcore.model.po.SmRolePO; -import com.vci.frameworkcore.model.po.SmUserPO; -import com.vci.frameworkcore.pagemodel.OrgDepartmentVO; -import com.vci.frameworkcore.pagemodel.SmRoleVO; -import com.vci.frameworkcore.pagemodel.SmUserVO; -import com.vci.frameworkcore.properties.ConfigReader; +import com.vci.model.SmRoleForPlatform1; +import com.vci.pagemodel.SmUserVO; +import com.vci.po.SmRolePO; +import com.vci.pagemodel.SmRoleVO; import com.vci.omd.utils.ObjectTool; import com.vci.starter.poi.bo.ReadExcelOption; import com.vci.starter.poi.constant.ExcelLangCodeConstant; import com.vci.starter.poi.util.ExcelUtil; import com.vci.starter.web.constant.QueryOptionConstant; -import com.vci.starter.web.enumpck.UserSecretEnum; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.util.LangBaseUtil; @@ -39,6 +36,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -61,6 +59,13 @@ */ @Autowired private WebBoServiceI boService; + + /** + * 鐢ㄦ埛鏌ヨ鏈嶅姟 + */ + @Autowired + @Lazy + private SmUserQueryServiceI smUserQueryServiceI; /** * 骞冲彴璋冪敤瀹㈡埛绔� @@ -86,7 +91,7 @@ if(Func.isEmpty(conditionMap)){ return null; } - VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(conditionMap,SmRoleForPlatform1.class); + VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(conditionMap, SmRoleForPlatform1.class); List<SmRoleForPlatform1> smRoleForPlatform1s = boService.selectByQueryWrapper(queryWrapper, SmRoleForPlatform1.class); if(Func.isNotEmpty(smRoleForPlatform1s) && Func.isNotBlank(smRoleForPlatform1s.get(0).getPluid())){ //瑙掕壊鍚嶄笉鑳介噸澶嶆墍浠ョ洿鎺ュ彇绗竴涓厓绱� @@ -646,16 +651,22 @@ VciBaseUtil.alertNotNull( smRoleDTO,"娣诲姞鐨勮鑹插璞�", smRoleDTO.getName(),"瑙掕壊鍚�"); - //鏌ヨ鏁版嵁搴撲腑鐨勶紝鏍规嵁瑙掕壊鍚嶆煡 + //鏍规嵁瑙掕壊涓婚敭鏌ヨ锛岀‘淇濅慨鏀圭殑瑙掕壊瀛樺湪 Map<String, String> conditionMap = new HashMap<>(); - conditionMap.put("plname",smRoleDTO.getName()); + conditionMap.put("pluid",smRoleDTO.getOid()); SmRoleVO dbSmRoleVO = getRoleByConditionMap(conditionMap); //鏍规嵁涓婚敭娌℃煡璇㈠埌浜嗙敤鎴� if(Func.isEmpty(dbSmRoleVO) || Func.isBlank(dbSmRoleVO.getOid())){ throw new PLException("500", new String[] { "褰撳墠淇敼鐨勮鑹蹭笉瀛樺湪!"}); } - //瑙掕壊鍚嶇浉绛夛紝浣嗘槸涓婚敭涓嶇浉绛夛紝璇存槑淇敼涓虹殑瑙掕壊鍚嶅凡瀛樺湪锛屼笉鑳介噸澶� - if(dbSmRoleVO.getName().equals(smRoleDTO.getName()) && !dbSmRoleVO.getOid().equals(smRoleDTO.getOid())){ + //鏌ヨ鏁版嵁搴撲腑鐨勶紝鏍规嵁瑙掕壊鍚嶆煡閲� + conditionMap.clear(); + conditionMap.put("plname",smRoleDTO.getName()); + //鎺掗櫎鎺夊綋鍓嶄慨鏀圭殑鐢ㄦ埛 + conditionMap.put("pluid",QueryOptionConstant.NOTEQUAL + smRoleDTO.getName()); + SmRoleVO reapeatSmRoleVO = getRoleByConditionMap(conditionMap); + //璇存槑淇敼涓虹殑瑙掕壊鍚嶅凡瀛樺湪锛屼笉鑳介噸澶� + if(Func.isNotEmpty(reapeatSmRoleVO) && smRoleDTO.getName().equals(reapeatSmRoleVO)){ throw new PLException("500", new String[] { "璇ヨ鑹插悕绉板凡缁忓瓨鍦�,璇蜂慨鏀�!"}); } SmRoleDTO smRoleDTO1 = new SmRoleDTO(); @@ -678,11 +689,31 @@ @Override public boolean deleteRole(String[] ids) throws PLException { VciBaseUtil.alertNotNull(ids,"瑕佸垹闄ょ殑瑙掕壊涓婚敭"); + //浣跨敤涓婚敭鍒ゆ柇瑙掕壊鏄惁琚敤鎴峰紩鐢� + for (int i = 0; i < ids.length; i++) { + String roleName = this.checkIsUsed(ids[i]); + if(Func.isNotBlank(roleName)){ + throw new PLException("500",new String[]{"褰撳墠閫変腑瑕佸垹闄ょ殑瑙掕壊涓瓨鍦ㄣ��"+roleName+"銆戣寮曠敤!"}); + } + } //鍏峰杩炲甫鍒犻櫎鐨勫姛鑳斤紝濡傝鑹茶彍鍗曟巿鏉冭〃閲岄潰鐨勬巿鏉冧俊鎭� return platformClientUtil.getFrameworkService().deleteRole( ids, new UserEntityInfo(WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(), null) ); + } + + /** + * 妫�鏌ヨ鑹叉槸鍚︽湁鍦ㄥ紩鐢� + * @param roleOid + * @return + */ + private String checkIsUsed(String roleOid){ + List<SmUserVO> smUserVOS = smUserQueryServiceI.listUserByRoleOid(roleOid, null); + if (Func.isNotEmpty(smUserVOS)) { + return this.getRoleNameByRoleOid(roleOid); + } + return null; } /** @@ -692,7 +723,7 @@ * @throws VciBaseException */ @Override - public BaseResult importRole(File file) throws VciBaseException { + public BaseResult importRole(File file) throws Exception { VciBaseUtil.alertNotNull(file,"excel鏂囦欢"); if(!file.exists()){ throw new VciBaseException("瀵煎叆鐨別xcel鏂囦欢涓嶅瓨鍦�,{0}",new String[]{file.getPath()}); @@ -732,8 +763,8 @@ try { SmRoleDTO smRoleDTO = new SmRoleDTO(); BeanUtil.copy(smRolePO,smRoleDTO); - //SessionInfo loginUser = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); - String userId = "developer";//loginUser.getUserId(); + SessionInfo loginUser = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + String userId = loginUser.getUserId(); //瑙掕壊绫诲瀷锛岃繖閲岃缃簡浼氬湪changeRoleObjectToRoleInfo涓浆鎹� if(UserTypeEnum.SUPPER_ADMIN.getValue().equals("0")){ smRoleDTO.setRoleClassify(RoleClassifyEnum.MANAGE.getValue()); -- Gitblit v1.9.3