From 7dfa500f73abda7a9de5f2c8dd14a227f551396b Mon Sep 17 00:00:00 2001 From: qiufeng Date: Sat, 5 Apr 2025 11:53:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E7=9A=84feign=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/fallback/RemoteUserFallback.java | 5 ++ .../oauth/api/remote/RemoteUserService.java | 70 +++++++++++-------- .../com/mfish/common/api/BootUserService.java | 5 ++ .../common/oauth/service/SsoUserService.java | 2 + .../common/redis/temp/BaseTempCache.java | 3 +- .../oauth/controller/SsoUserController.java | 7 ++ .../com/mfish/oauth/mapper/SsoUserMapper.java | 2 + .../mfish/oauth/mapper/xml/SsoUserMapper.xml | 6 ++ .../service/impl/SsoUserServiceImpl.java | 5 ++ 9 files changed, 76 insertions(+), 29 deletions(-) diff --git a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteUserFallback.java b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteUserFallback.java index b04b2c59..44fa5619 100644 --- a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteUserFallback.java +++ b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteUserFallback.java @@ -70,6 +70,11 @@ public class RemoteUserFallback implements FallbackFactory { public Result> getUserIdsByAccounts(String origin, String accounts) { return Result.fail("错误:获取用户ID失败" + cause.getMessage()); } + + @Override + public Result> getUsersByAccount(String origin, String accounts) { + return Result.fail("错误:获取用户信息失败" + cause.getMessage()); + } }; } } diff --git a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteUserService.java b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteUserService.java index c0d484c1..812e6526 100644 --- a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteUserService.java +++ b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteUserService.java @@ -29,27 +29,29 @@ public interface RemoteUserService { /** * 根据token获取用户信息 * - * @param token - * @param origin - * @return + * @param token token + * @param origin 来源 + * @return 用户信息 */ @GetMapping("/user/info") Result getUserInfo(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @RequestHeader(Constants.AUTHENTICATION) String token); /** * 根据id获取用户信息(不包括密码) - * @param origin - * @param id - * @return + * + * @param origin 来源 + * @param id 用户id + * @return 用户信息 */ @GetMapping("/user/{id}") Result getUserById(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @PathVariable("id") String id); /** * 根据账号获取用户信息(不包括密码) - * @param origin - * @param account - * @return + * + * @param origin 来源 + * @param account 账号 + * @return 用户信息 */ @GetMapping("/user/info/{account}") Result getUserByAccount(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @PathVariable("account") String account); @@ -57,10 +59,10 @@ public interface RemoteUserService { /** * 获取用户角色 * - * @param origin - * @param userId - * @param tenantId - * @return + * @param origin 来源 + * @param userId 用户id + * @param tenantId 租户id + * @return 用户角色列表 */ @GetMapping("/user/roles") Result> getRoles(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @RequestParam("userId") String userId, @RequestParam("tenantId") String tenantId); @@ -68,10 +70,10 @@ public interface RemoteUserService { /** * 获取用户权限 * - * @param origin - * @param userId - * @param tenantId - * @return + * @param origin 来源 + * @param userId 用户id + * @param tenantId 租户id + * @return 返回权限集合 */ @GetMapping("/user/permissions") Result> getPermissions(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @RequestParam("userId") String userId, @RequestParam("tenantId") String tenantId); @@ -79,9 +81,9 @@ public interface RemoteUserService { /** * 获取当前租户列表 * - * @param origin - * @param userId - * @return + * @param origin 来源 + * @param userId 用户id + * @return 租户列表 */ @GetMapping("/user/tenants") Result> getTenants(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @RequestParam("userId") String userId); @@ -89,9 +91,10 @@ public interface RemoteUserService { /** * 获取用户组织 * - * @param userId - * @param direction - * @return + * @param origin 来源 + * @param userId 用户id + * @param direction 查询方向 + * @return 用户组织列表 */ @GetMapping("/user/orgs/{userId}") Result> getOrgs(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @PathVariable("userId") String userId, @RequestParam("direction") String direction); @@ -103,17 +106,28 @@ public interface RemoteUserService { * @param userId 用户id * @param tenantId 租户id * @param direction 查询方向 - * @return + * @return 组织id列表 */ @GetMapping("/user/orgIds/{userId}") Result> getOrgIds(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @PathVariable("userId") String userId, @RequestParam("tenantId") String tenantId, @RequestParam("direction") String direction); /** * 根据账号获取用户id - * @param origin 来源 + * + * @param origin 来源 * @param accounts 账号 多个逗号分割 - * @return + * @return 返回用户id列表 */ - @GetMapping("/user/userId/{account}") - Result> getUserIdsByAccounts(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @PathVariable String accounts); + @GetMapping("/user/userId/{accounts}") + Result> getUserIdsByAccounts(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @PathVariable("accounts") String accounts); + + /** + * 根据账号获取用户信息 + * + * @param origin 来源 + * @param accounts 账号 多个逗号分割 + * @return 返回用户信息列表 + */ + @GetMapping("/user/users/{accounts}") + Result> getUsersByAccount(@RequestHeader(RPCConstants.REQ_ORIGIN) String origin, @PathVariable("accounts") String accounts); } \ No newline at end of file diff --git a/mf-common/mf-common-api/src/main/java/cn/com/mfish/common/api/BootUserService.java b/mf-common/mf-common-api/src/main/java/cn/com/mfish/common/api/BootUserService.java index 3fa63352..bac5523b 100644 --- a/mf-common/mf-common-api/src/main/java/cn/com/mfish/common/api/BootUserService.java +++ b/mf-common/mf-common-api/src/main/java/cn/com/mfish/common/api/BootUserService.java @@ -80,4 +80,9 @@ public class BootUserService implements RemoteUserService { public Result> getUserIdsByAccounts(String origin, String accounts) { return Result.ok(ssoUserService.getUserIdsByAccounts(List.of(accounts.split(","))), "获取用户id成功"); } + + @Override + public Result> getUsersByAccount(String origin, String accounts) { + return Result.ok(ssoUserService.getUsersByAccounts(List.of(accounts.split(","))), "获取用户信息成功"); + } } diff --git a/mf-common/mf-common-oauth/src/main/java/cn/com/mfish/common/oauth/service/SsoUserService.java b/mf-common/mf-common-oauth/src/main/java/cn/com/mfish/common/oauth/service/SsoUserService.java index 3a852396..a2420559 100644 --- a/mf-common/mf-common-oauth/src/main/java/cn/com/mfish/common/oauth/service/SsoUserService.java +++ b/mf-common/mf-common-oauth/src/main/java/cn/com/mfish/common/oauth/service/SsoUserService.java @@ -42,6 +42,8 @@ public interface SsoUserService extends IService { List getUserIdsByAccounts(List accounts); + List getUsersByAccounts(List accounts); + SsoUser getUserById(String userId); UserInfo getUserByIdNoPwd(String userId); diff --git a/mf-common/mf-common-redis/src/main/java/cn/com/mfish/common/redis/temp/BaseTempCache.java b/mf-common/mf-common-redis/src/main/java/cn/com/mfish/common/redis/temp/BaseTempCache.java index 8668297d..8e9656f5 100644 --- a/mf-common/mf-common-redis/src/main/java/cn/com/mfish/common/redis/temp/BaseTempCache.java +++ b/mf-common/mf-common-redis/src/main/java/cn/com/mfish/common/redis/temp/BaseTempCache.java @@ -2,12 +2,13 @@ package cn.com.mfish.common.redis.temp; import cn.com.mfish.common.redis.common.RedisPrefix; import cn.com.mfish.common.redis.config.CacheProperties; -import jakarta.annotation.Resource; import lombok.Data; import lombok.Setter; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.support.atomic.RedisAtomicLong; +import jakarta.annotation.Resource; + import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoUserController.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoUserController.java index 78ef2eb1..89f666a1 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoUserController.java +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoUserController.java @@ -308,4 +308,11 @@ public class SsoUserController { public Result> getUserIdByAccount(@Parameter(name = "accounts", description = "帐号名称") @PathVariable String accounts) { return Result.ok(ssoUserService.getUserIdsByAccounts(List.of(accounts.split(","))), "获取用户id成功"); } + + @Operation(summary = "根据账号获取简单用户信息(内部接口)") + @GetMapping("/users/{accounts}") + @InnerUser + public Result> getUsersByAccount(@Parameter(name = "accounts", description = "帐号名称") @PathVariable String accounts) { + return Result.ok(ssoUserService.getUsersByAccounts(List.of(accounts.split(","))), "获取用户信息成功"); + } } diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoUserMapper.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoUserMapper.java index 749b316d..53e62b5a 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoUserMapper.java +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoUserMapper.java @@ -98,4 +98,6 @@ public interface SsoUserMapper extends BaseMapper { List searchUserList(@Param("condition") String condition); List getUserIdsByAccounts(@Param("accounts") List accounts); + + List getUsersByAccounts(@Param("accounts") List accounts); } diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoUserMapper.xml b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoUserMapper.xml index 488b2fab..1c11877a 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoUserMapper.xml +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoUserMapper.xml @@ -248,4 +248,10 @@ #{account} + \ No newline at end of file diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoUserServiceImpl.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoUserServiceImpl.java index 54f6ed8a..ff21850d 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoUserServiceImpl.java +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoUserServiceImpl.java @@ -307,6 +307,11 @@ public class SsoUserServiceImpl extends ServiceImpl impl return baseMapper.getUserIdsByAccounts(accounts); } + @Override + public List getUsersByAccounts(List accounts) { + return baseMapper.getUsersByAccounts(accounts); + } + @Override public SsoUser getUserById(String userId) { return userTempCache.getFromCacheAndDB(userId);