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 |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 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 41109c8..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
@@ -17,6 +17,10 @@
 package cn.gistack.auth.service;
 
 import cn.gistack.auth.constant.AuthConstant;
+import cn.gistack.sm.sjztmd.entity.AttResManagePerson;
+import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
+import cn.gistack.system.entity.Dept;
+import cn.gistack.system.entity.Role;
 import com.alibaba.nacos.common.utils.StringUtils;
 import io.jsonwebtoken.Claims;
 import lombok.AllArgsConstructor;
@@ -57,6 +61,8 @@
 	public static final String FAIL_COUNT_VALUE = "account.failCount";
 
 	private final IUserClient userClient;
+
+	private final IAttResManagePersonClient attResManagePersonClient;
 	private final ISysClient sysClient;
 
 	private final BladeRedis bladeRedis;
@@ -146,6 +152,24 @@
 				}
 				user.setRoleId(headerRole);
 			}
+
+			//拼接用户所属行政区划、责任人需要返回水库ids
+			R<AttResManagePerson> attRes = attResManagePersonClient.queryListByPhone(user.getPhone());
+			userInfo.getDetail().set("resIds",attRes.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);
 			return new BladeUserDetails(user.getId(),

--
Gitblit v1.9.3