From a7eff5f2942b8598c96b2fa9e8ab334dccbf2400 Mon Sep 17 00:00:00 2001 From: yangsb Date: Thu, 25 Apr 2024 17:45:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9mybatis=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E7=9A=84creator=20updater=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=B8=BA=E7=94=A8=E6=88=B7=E6=98=B5=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/handler/DefaultDBFieldHandler.java | 9 ++++--- .../framework/security/core/LoginUser.java | 4 +++ .../core/util/SecurityFrameworkUtils.java | 1 + .../web/core/util/WebFrameworkUtils.java | 26 +++++++++++++++++++ .../gateway/filter/security/LoginUser.java | 4 +++ .../security/TokenAuthenticationFilter.java | 2 +- .../dto/OAuth2AccessTokenCheckRespDTO.java | 2 ++ .../dto/OAuth2AccessTokenCreateReqDTO.java | 3 ++- .../system/api/oauth2/OAuth2TokenApiImpl.java | 2 +- .../oauth2/OAuth2AccessTokenDO.java | 9 +++++-- .../oauth2/OAuth2RefreshTokenDO.java | 4 +++ .../application/ApplicationServiceImpl.java | 4 ++- .../service/auth/AdminAuthServiceImpl.java | 10 +++---- .../oauth2/OAuth2GrantServiceImpl.java | 6 ++--- .../service/oauth2/OAuth2TokenService.java | 2 +- .../oauth2/OAuth2TokenServiceImpl.java | 9 ++++--- 16 files changed, 74 insertions(+), 23 deletions(-) diff --git a/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java b/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java index c98135cc1..0a667003f 100644 --- a/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java +++ b/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java @@ -33,13 +33,14 @@ public class DefaultDBFieldHandler implements MetaObjectHandler { } Long userId = WebFrameworkUtils.getLoginUserId(); + String loginUserName = WebFrameworkUtils.getLoginUserName(); // 当前登录用户不为空,创建人为空,则当前登录用户为创建人 - if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreator())) { - baseDO.setCreator(userId.toString()); + if (Objects.nonNull(loginUserName) && Objects.isNull(baseDO.getCreator())) { + baseDO.setCreator(loginUserName); } // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 - if (Objects.nonNull(userId) && Objects.isNull(baseDO.getUpdater())) { - baseDO.setUpdater(userId.toString()); + if (Objects.nonNull(loginUserName) && Objects.isNull(baseDO.getUpdater())) { + baseDO.setUpdater(loginUserName); } } } diff --git a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/LoginUser.java b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/LoginUser.java index ad05eea67..77664cf4e 100644 --- a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/LoginUser.java +++ b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/LoginUser.java @@ -75,4 +75,8 @@ public class LoginUser { * 数据源编码 */ private String dataCode; + /** + * 用户昵称 + */ + private String nickname; } diff --git a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java index 67e6abaf7..a20ea115d 100644 --- a/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java +++ b/cf-framework/cf-spring-boot-starter-security/src/main/java/com/cf/imes/framework/security/core/util/SecurityFrameworkUtils.java @@ -106,6 +106,7 @@ public class SecurityFrameworkUtils { // 原因是,Spring Security 的 Filter 在 ApiAccessLogFilter 后面,在它记录访问日志时,线上上下文已经没有用户编号等信息 WebFrameworkUtils.setLoginUserId(request, loginUser.getId()); WebFrameworkUtils.setLoginUserType(request, loginUser.getUserType()); + WebFrameworkUtils.setLoginUserName(request, loginUser.getNickname()); } private static Authentication buildAuthentication(LoginUser loginUser, HttpServletRequest request) { diff --git a/cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/web/core/util/WebFrameworkUtils.java b/cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/web/core/util/WebFrameworkUtils.java index a99b9274e..ee5ee3f1f 100644 --- a/cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/web/core/util/WebFrameworkUtils.java +++ b/cf-framework/cf-spring-boot-starter-web/src/main/java/com/cf/imes/framework/web/core/util/WebFrameworkUtils.java @@ -25,6 +25,8 @@ public class WebFrameworkUtils { private static final String REQUEST_ATTRIBUTE_COMMON_RESULT = "common_result"; + private static final String REQUEST_ATTRIBUTE_LOGIN_USER_NAME = "login-user-name"; + public static final String HEADER_ORGAN_ID = "organ-id"; /** @@ -56,6 +58,10 @@ public class WebFrameworkUtils { request.setAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID, userId); } + public static void setLoginUserName(ServletRequest request, String nickname) { + request.setAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_NAME, nickname); + } + /** * 设置用户类型 * @@ -80,6 +86,20 @@ public class WebFrameworkUtils { return (Long) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_ID); } + /** + * 获得当前用户的昵称,从请求中 + * 注意:该方法仅限于 framework 框架使用!!! + * + * @param request 请求 + * @return 用户编号 + */ + private static String getLoginUserName(HttpServletRequest request) { + if (request == null) { + return null; + } + return (String) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_NAME); + } + /** * 获得当前用户的类型 * 注意:该方法仅限于 web 相关的 framework 组件使用!!! @@ -116,6 +136,12 @@ public class WebFrameworkUtils { return getLoginUserId(request); } + public static String getLoginUserName() { + HttpServletRequest request = getRequest(); + return getLoginUserName(request); + } + + public static Integer getTerminal() { HttpServletRequest request = getRequest(); if (request == null) { diff --git a/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/LoginUser.java b/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/LoginUser.java index 5b20cfb90..697095ed4 100644 --- a/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/LoginUser.java +++ b/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/LoginUser.java @@ -46,5 +46,9 @@ public class LoginUser { * 数据源编码 */ private String dataCode; + /** + * 用户nic + */ + private String nickname; } diff --git a/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/TokenAuthenticationFilter.java b/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/TokenAuthenticationFilter.java index cb7326984..0b924df1e 100644 --- a/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/TokenAuthenticationFilter.java +++ b/cf-gateway/src/main/java/com/cf/imes/gateway/filter/security/TokenAuthenticationFilter.java @@ -171,7 +171,7 @@ public class TokenAuthenticationFilter implements GlobalFilter, Ordered { return new LoginUser().setId(tokenInfo.getUserId()).setUserType(tokenInfo.getUserType()) .setOrganId(tokenInfo.getOrganId()).setScopes(tokenInfo.getScopes()) .setLarge(tokenInfo.getLarge()).setDbNo(tokenInfo.getDbNo()).setTableNo(tokenInfo.getTableNo()) - .setDataCode(tokenInfo.getDataCode()); + .setDataCode(tokenInfo.getDataCode()).setNickname(tokenInfo.getNickname()); } @Override diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java index bdb51ffba..b63badf7f 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java @@ -30,5 +30,7 @@ public class OAuth2AccessTokenCheckRespDTO implements Serializable { private Integer tableNo; @Schema(description = "数据源编码") private String dataCode; + @Schema(description = "用户昵称") + private String nickname; } diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java index d13a97168..ca9b180ff 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java @@ -32,5 +32,6 @@ public class OAuth2AccessTokenCreateReqDTO implements Serializable { private Long organId; @Schema(description = "数据源标识") private String dataCode; - + @Schema(description = "用户昵称") + private String nickname; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/oauth2/OAuth2TokenApiImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/oauth2/OAuth2TokenApiImpl.java index 91a52301f..4fc421671 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/oauth2/OAuth2TokenApiImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/oauth2/OAuth2TokenApiImpl.java @@ -40,7 +40,7 @@ public class OAuth2TokenApiImpl implements OAuth2TokenApi { throw new ServerException(10023,"组织不存在"); }*/ OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken( - reqDTO.getUserId(), reqDTO.getUserType(), reqDTO.getClientId(), reqDTO.getScopes(), null, null, null, reqDTO.getDataCode(), reqDTO.getOrganId()); + reqDTO.getUserId(), reqDTO.getUserType(), reqDTO.getClientId(), reqDTO.getScopes(), null, null, null, reqDTO.getDataCode(), reqDTO.getOrganId(), reqDTO.getNickname()); return success(BeanUtils.toBean(accessTokenDO, OAuth2AccessTokenRespDTO.class)); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java index 6badaa874..4de2d2966 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java @@ -82,7 +82,12 @@ public class OAuth2AccessTokenDO extends BaseDO { * 数据源编码 */ private String dataCode; - + /** + * 组织id + */ private Long organId; - + /** + * 用户昵称 + */ + private String nickname; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java index ae5515268..ae48a94cb 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java @@ -79,5 +79,9 @@ public class OAuth2RefreshTokenDO extends BaseDO { * 组织id */ private Long organId; + /** + * 用户昵称 + */ + private String nickname; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/application/ApplicationServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/application/ApplicationServiceImpl.java index 46f92353d..d212fc607 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/application/ApplicationServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/application/ApplicationServiceImpl.java @@ -134,7 +134,9 @@ public class ApplicationServiceImpl implements ApplicationService{ null, null, null, - null); + null, + null + ); // 构建返回结果 return AuthConvert.INSTANCE.convert(accessTokenDO); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java index 2f9f55dad..694a03797 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java @@ -130,7 +130,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { throw exception(ORGAN_DATA_CODE_NOT_EXISTS); } // 创建 Token 令牌,记录登录日志 - return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME, dataSourceCode, user.getOrganId()); + return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME, dataSourceCode, user.getOrganId(), user.getNickname()); } @Override @@ -161,7 +161,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { } // 创建 Token 令牌,记录登录日志 - return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE, dataSourceCode, organId); + return createTokenAfterLoginSuccess(user.getId(), reqVO.getMobile(), LoginLogTypeEnum.LOGIN_MOBILE, dataSourceCode, organId, user.getNickname()); } private void createLoginLog(Long userId, String username, @@ -206,7 +206,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { } // 创建 Token 令牌,记录登录日志 - return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL, dataSourceCode, organId); + return createTokenAfterLoginSuccess(user.getId(), user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL, dataSourceCode, organId, user.getNickname()); } @VisibleForTesting @@ -228,7 +228,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { } } - private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType, String dataCode, Long organId) { + private AuthLoginRespVO createTokenAfterLoginSuccess(Long userId, String username, LoginLogTypeEnum logType, String dataCode, Long organId, String nickname) { // 插入登陆日志 createLoginLog(userId, username, logType, LoginResultEnum.SUCCESS); /*Long organId = OrganContextHolder.getOrganId(); @@ -238,7 +238,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { }*/ // 创建访问令牌 OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(userId, getUserType().getValue(), - OAuth2ClientConstants.CLIENT_ID_DEFAULT, null, null, null, null, dataCode, organId); + OAuth2ClientConstants.CLIENT_ID_DEFAULT, null, null, null, null, dataCode, organId, nickname); // 构建返回结果 return AuthConvert.INSTANCE.convert(accessTokenDO); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2GrantServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2GrantServiceImpl.java index bacda0207..5154f2c6e 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2GrantServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2GrantServiceImpl.java @@ -47,7 +47,7 @@ public class OAuth2GrantServiceImpl implements OAuth2GrantService { if(Objects.isNull(organ)) { throw new ServerException(10023,"组织不存在"); }*/ - return oauth2TokenService.createAccessToken(userId, userType, clientId, scopes, null, null, null, null, null); + return oauth2TokenService.createAccessToken(userId, userType, clientId, scopes, null, null, null, null, null, null); } @Override @@ -85,7 +85,7 @@ public class OAuth2GrantServiceImpl implements OAuth2GrantService { // 创建访问令牌 return oauth2TokenService.createAccessToken(codeDO.getUserId(), codeDO.getUserType(), - codeDO.getClientId(), codeDO.getScopes(),null, null, null, null, null); + codeDO.getClientId(), codeDO.getScopes(),null, null, null, null, null, null); } @Override @@ -99,7 +99,7 @@ public class OAuth2GrantServiceImpl implements OAuth2GrantService { throw new ServerException(10023,"组织不存在"); }*/ // 创建访问令牌 - return oauth2TokenService.createAccessToken(user.getId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes,null, null, null, null,null); + return oauth2TokenService.createAccessToken(user.getId(), UserTypeEnum.ADMIN.getValue(), clientId, scopes,null, null, null, null,null,null); } @Override diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenService.java index 22da448ed..c44b3f4a1 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenService.java @@ -27,7 +27,7 @@ public interface OAuth2TokenService { * @param scopes 授权范围 * @return 访问令牌的信息 */ - OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId); + OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname); /** * 刷新访问令牌 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java index 2b1b28f11..033ea67db 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -45,10 +45,10 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { @Override @Transactional - public OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List scopes,Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId) { + public OAuth2AccessTokenDO createAccessToken(Long userId, Integer userType, String clientId, List scopes,Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) { OAuth2ClientDO clientDO = oauth2ClientService.validOAuthClientFromCache(clientId); // 创建刷新令牌 - OAuth2RefreshTokenDO refreshTokenDO = createOAuth2RefreshToken(userId, userType, clientDO, scopes, large, dbNo, tableNo, dataCode, organId); + OAuth2RefreshTokenDO refreshTokenDO = createOAuth2RefreshToken(userId, userType, clientDO, scopes, large, dbNo, tableNo, dataCode, organId, nickname); // 创建访问令牌 return createOAuth2AccessToken(refreshTokenDO, clientDO); } @@ -140,6 +140,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getAccessTokenValiditySeconds())) .setLarge(refreshTokenDO.getLarge()).setDbNo(refreshTokenDO.getDbNo()).setTableNo(refreshTokenDO.getTableNo()) .setDataCode(refreshTokenDO.getDataCode()).setOrganId(refreshTokenDO.getOrganId()) + .setNickname(refreshTokenDO.getNickname()) ; //accessTokenDO.setOrganId(OrganContextHolder.getOrganId()); // 手动设置组织编号,避免缓存到 Redis 的时候,无对应的组织编号 oauth2AccessTokenMapper.insert(accessTokenDO); @@ -148,13 +149,13 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { return accessTokenDO; } - private OAuth2RefreshTokenDO createOAuth2RefreshToken(Long userId, Integer userType, OAuth2ClientDO clientDO, List scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId) { + private OAuth2RefreshTokenDO createOAuth2RefreshToken(Long userId, Integer userType, OAuth2ClientDO clientDO, List scopes, Boolean large, Integer dbNo, Integer tableNo, String dataCode, Long organId, String nickname) { OAuth2RefreshTokenDO refreshToken = new OAuth2RefreshTokenDO().setRefreshToken(generateRefreshToken()) .setUserId(userId).setUserType(userType) .setClientId(clientDO.getClientId()).setScopes(scopes) .setExpiresTime(LocalDateTime.now().plusSeconds(clientDO.getRefreshTokenValiditySeconds())) .setLarge(large).setDbNo(dbNo).setTableNo(tableNo).setDataCode(dataCode) - .setOrganId(organId) + .setOrganId(organId).setNickname(nickname) ; oauth2RefreshTokenMapper.insert(refreshToken); return refreshToken;