From f5a4fe061e4fb569ac21612268cdf52a1b21d54d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 24 Apr 2023 11:21:26 +0800
Subject: [PATCH] 多机构登录逻辑优化

---
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
index f9ac1a3..eac289b 100644
--- a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
@@ -157,8 +157,18 @@
 			R<AttResManagePerson> attRes = attResManagePersonClient.queryListByPhone(user.getPhone());
 			userInfo.getDetail().set("resIds",attRes.getData());
 
-			R<Dept> deptRes = sysClient.getDept(Long.valueOf(userInfo.getUser().getDeptId()));
-			userInfo.getDetail().set("adCodeBase",attResManagePersonClient.getAdBaseById(deptRes.getData().getAdCode()).getData());
+			String deptStr = "";
+			if (userInfo.getUser().getDeptId().indexOf(",") > 0){
+				deptStr = userInfo.getUser().getDeptId().split(",")[0];
+			}else {
+				deptStr = userInfo.getUser().getDeptId();
+			}
+			R<Dept> deptRes = sysClient.getDept(Long.valueOf(deptStr));
+			if (StringUtil.isBlank(deptRes.getData().getAdCode()))
+				// 部门为空
+				throw new UsernameNotFoundException("没有找到有效组织机构~");
+			else
+				userInfo.getDetail().set("adCodeBase",attResManagePersonClient.getAdBaseById(deptRes.getData().getAdCode()).getData());
 
 			// 成功则清除登录错误次数
 			delFailCount(tenantId, username);

--
Gitblit v1.9.3