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 |   34 ++++++++++++++++++++++++++++++++--
 1 files changed, 32 insertions(+), 2 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 2320280..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
@@ -8,9 +8,11 @@
 import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI;
 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.model.SmRoleForPlatform1;
+import com.vci.pagemodel.SmUserVO;
 import com.vci.po.SmRolePO;
 import com.vci.pagemodel.SmRoleVO;
 import com.vci.omd.utils.ObjectTool;
@@ -34,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;
 
@@ -56,6 +59,13 @@
 	 */
 	@Autowired
 	private WebBoServiceI boService;
+
+	/**
+	 * 鐢ㄦ埛鏌ヨ鏈嶅姟
+	 */
+	@Autowired
+	@Lazy
+	private SmUserQueryServiceI smUserQueryServiceI;
 
 	/**
 	 * 骞冲彴璋冪敤瀹㈡埛绔�
@@ -679,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;
 	}
 
 	/**
@@ -733,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