diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 36570ee..7b23daa 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -57,7 +57,7 @@ public interface LauncherConstant { /** * nacos test 地址 */ - String NACOS_TEST_ADDR = "172.30.0.48:8848"; + String NACOS_TEST_ADDR = "172.19.2.126:30848"; /** * sentinel dev 地址 diff --git a/blade-service-api/blade-system-api/pom.xml b/blade-service-api/blade-system-api/pom.xml index 41c283a..4531116 100644 --- a/blade-service-api/blade-system-api/pom.xml +++ b/blade-service-api/blade-system-api/pom.xml @@ -2,6 +2,7 @@ + blade-service-api org.springblade diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java index 97020dd..a67a826 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java @@ -53,6 +53,8 @@ public interface ISysClient { String DEPT_NAME = API_PREFIX + "/dept-name"; String DEPT_NAMES = API_PREFIX + "/dept-names"; String DEPT_CHILD = API_PREFIX + "/dept-child"; + String CURRENT_USER_COMPANY = API_PREFIX + "/current-user-company"; + String CURRENT_USER_DEPT = API_PREFIX + "/current-user-dept"; String POST = API_PREFIX + "/post"; String POST_IDS = API_PREFIX + "/post-ids"; String POST_IDS_FUZZY = API_PREFIX + "/post-ids-fuzzy"; @@ -136,6 +138,22 @@ public interface ISysClient { @GetMapping(DEPT_CHILD) R> getDeptChild(@RequestParam("deptId") Long deptId); + /** + * 获取当前登录用户所属公司 + * + * @return Dept + */ + @GetMapping(CURRENT_USER_COMPANY) + R getCurrentUserCompany(); + + /** + * 获取当前登录用户所属部门 + * + * @return Dept + */ + @GetMapping(CURRENT_USER_DEPT) + R getCurrentUserDept(); + /** * 获取岗位 * diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java index 47e40d7..8ab4971 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java @@ -74,6 +74,16 @@ public class ISysClientFallback implements ISysClient { return R.fail("获取数据失败"); } + @Override + public R getCurrentUserCompany() { + return R.fail("获取数据失败"); + } + + @Override + public R getCurrentUserDept() { + return R.fail("获取数据失败"); + } + @Override public R getPost(Long id) { return R.fail("获取数据失败"); diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java index 0c12f90..e44d92f 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java @@ -26,8 +26,10 @@ package org.springblade.system.feign; import lombok.AllArgsConstructor; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springblade.system.pojo.entity.*; import org.springblade.system.service.*; import org.springframework.web.bind.annotation.GetMapping; @@ -103,6 +105,52 @@ public class SysClient implements ISysClient { return R.data(deptService.getDeptChild(deptId)); } + @Override + @GetMapping(CURRENT_USER_COMPANY) + public R getCurrentUserCompany() { + Long deptId = Func.firstLong(AuthUtil.getDeptId()); + if (Func.isEmpty(deptId)) { + return R.data(null); + } + Dept company = findCompanyByDeptId(deptId); + return R.data(company); + } + + @Override + @GetMapping(CURRENT_USER_DEPT) + public R getCurrentUserDept() { + Long deptId = Func.firstLong(AuthUtil.getDeptId()); + if (Func.isEmpty(deptId)) { + return R.data(null); + } + Dept dept = deptService.getById(deptId); + if (dept != null && Integer.valueOf(2).equals(dept.getDeptCategory())) { + return R.data(dept); + } + return R.data(null); + } + + /** + * 根据部门ID向上查找所属公司(dept_category = 1) + * + * @param deptId 部门ID + * @return 公司信息 + */ + private Dept findCompanyByDeptId(Long deptId) { + Dept current = deptService.getById(deptId); + while (current != null) { + if (Integer.valueOf(1).equals(current.getDeptCategory())) { + return current; + } + Long parentId = current.getParentId(); + if (Func.isEmpty(parentId) || parentId <= 0L) { + break; + } + current = deptService.getById(parentId); + } + return null; + } + @Override public R getPost(Long id) { return R.data(postService.getById(id));