diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java index a3025f57..cf2e9804 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java @@ -63,5 +63,11 @@ public interface RemoteUserService { */ String selectUserNameById(Long userId); - void recordLoginInfo(Long userId); + /** + * 更新用户信息 + * + * @param remoteUserBo 用户信息 + */ + void updateUser(RemoteUserBo remoteUserBo); + } diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java index f3e8f304..d7024e67 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/SysLoginService.java @@ -136,6 +136,20 @@ public class SysLoginService { SpringUtils.context().publishEvent(logininforEvent); } + /** + * 记录登录信息 + * + * @param loginUser 用户信息 + */ + public void recordLoginInfo(LoginUser loginUser) { + RemoteUserBo bo = new RemoteUserBo(); + bo.setUserId(loginUser.getUserId()); + bo.setUserName(loginUser.getUsername()); + bo.setLoginIp(ServletUtils.getClientIP()); + bo.setLoginDate(DateUtils.getNowDate()); + remoteUserService.updateUser(bo); + } + /** * 登录校验 */ diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/EmailAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/EmailAuthStrategy.java index 5f64b810..23988751 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/EmailAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/EmailAuthStrategy.java @@ -64,7 +64,7 @@ public class EmailAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - remoteUserService.recordLoginInfo(loginUser.getUserId()); + loginService.recordLoginInfo(loginUser); LoginVo loginVo = new LoginVo(); loginVo.setAccessToken(StpUtil.getTokenValue()); diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PasswordAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PasswordAuthStrategy.java index 96a6e3d6..9225723a 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PasswordAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PasswordAuthStrategy.java @@ -6,6 +6,7 @@ import cn.dev33.satoken.stp.StpUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; +import org.apache.dubbo.rpc.RpcContext; import org.dromara.auth.domain.vo.LoginVo; import org.dromara.common.core.exception.CaptchaException; import org.dromara.common.core.domain.model.LoginBody; @@ -17,6 +18,7 @@ import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.core.enums.LoginType; import org.dromara.common.core.exception.user.CaptchaExpireException; import org.dromara.common.core.utils.MessageUtils; +import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.validate.auth.PasswordGroup; @@ -77,7 +79,7 @@ public class PasswordAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - remoteUserService.recordLoginInfo(loginUser.getUserId()); + loginService.recordLoginInfo(loginUser); LoginVo loginVo = new LoginVo(); loginVo.setAccessToken(StpUtil.getTokenValue()); diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java index dd5f4b29..359aa7dd 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SmsAuthStrategy.java @@ -64,7 +64,7 @@ public class SmsAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - remoteUserService.recordLoginInfo(loginUser.getUserId()); + loginService.recordLoginInfo(loginUser); LoginVo loginVo = new LoginVo(); loginVo.setAccessToken(StpUtil.getTokenValue()); diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java index 06d04ad2..2dc95bca 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java @@ -101,7 +101,7 @@ public class SocialAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), socialVo.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - remoteUserService.recordLoginInfo(socialVo.getUserId()); + loginService.recordLoginInfo(loginUser); LoginVo loginVo = new LoginVo(); loginVo.setAccessToken(StpUtil.getTokenValue()); diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/XcxAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/XcxAuthStrategy.java index e072fc4b..c0bf88d5 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/XcxAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/XcxAuthStrategy.java @@ -59,7 +59,7 @@ public class XcxAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - remoteUserService.recordLoginInfo(loginUser.getUserId()); + loginService.recordLoginInfo(loginUser); LoginVo loginVo = new LoginVo(); loginVo.setAccessToken(StpUtil.getTokenValue()); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java index 41286824..56e39ef7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java @@ -8,9 +8,7 @@ import org.apache.dubbo.config.annotation.DubboService; import org.dromara.common.core.enums.UserStatus; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.user.UserException; -import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.domain.bo.RemoteUserBo; @@ -161,18 +159,15 @@ public class RemoteUserServiceImpl implements RemoteUserService { } /** - * 记录登录信息 + * 更新用户信息 * - * @param userId 用户ID + * @param remoteUserBo 用户信息 */ @Override - public void recordLoginInfo(Long userId) { - SysUser sysUser = new SysUser(); - sysUser.setUserId(userId); - sysUser.setLoginIp(ServletUtils.getClientIP()); - sysUser.setLoginDate(DateUtils.getNowDate()); - sysUser.setUpdateBy(userId); - userMapper.updateById(sysUser); + public void updateUser(RemoteUserBo remoteUserBo) { + SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class); + sysUserBo.setUpdateBy(remoteUserBo.getUserId()); + userService.updateUser(sysUserBo); } }