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 cf2e9804..6720720b 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 @@ -66,8 +66,9 @@ public interface RemoteUserService { /** * 更新用户信息 * - * @param remoteUserBo 用户信息 + * @param userId 用户ID + * @param ip IP地址 */ - void updateUser(RemoteUserBo remoteUserBo); + void recordLoginInfo(Long userId, String ip); } 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 d7024e67..f3e8f304 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,20 +136,6 @@ 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 23988751..14cc89e5 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 @@ -14,6 +14,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.EmailGroup; @@ -64,7 +65,7 @@ public class EmailAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - loginService.recordLoginInfo(loginUser); + remoteUserService.recordLoginInfo(loginUser.getUserId(), ServletUtils.getClientIP()); 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 9225723a..e9073c39 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,11 +6,9 @@ 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; -import org.dromara.auth.properties.CaptchaProperties; import org.dromara.auth.service.IAuthStrategy; import org.dromara.auth.service.SysLoginService; import org.dromara.common.core.constant.Constants; @@ -79,7 +77,7 @@ public class PasswordAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - loginService.recordLoginInfo(loginUser); + remoteUserService.recordLoginInfo(loginUser.getUserId(), ServletUtils.getClientIP()); 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 359aa7dd..15730ddd 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 @@ -14,6 +14,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.SmsGroup; @@ -64,7 +65,7 @@ public class SmsAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - loginService.recordLoginInfo(loginUser); + remoteUserService.recordLoginInfo(loginUser.getUserId(), ServletUtils.getClientIP()); 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 2dc95bca..cd1db9f5 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 @@ -19,6 +19,7 @@ import org.dromara.common.core.constant.Constants; import org.dromara.common.core.domain.model.LoginBody; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MessageUtils; +import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.validate.auth.SocialGroup; import org.dromara.common.satoken.utils.LoginHelper; @@ -101,7 +102,7 @@ public class SocialAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), socialVo.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - loginService.recordLoginInfo(loginUser); + remoteUserService.recordLoginInfo(loginUser.getUserId(), ServletUtils.getClientIP()); 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 c0bf88d5..8332371c 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 @@ -11,6 +11,7 @@ import org.dromara.auth.service.IAuthStrategy; import org.dromara.auth.service.SysLoginService; import org.dromara.common.core.constant.Constants; import org.dromara.common.core.utils.MessageUtils; +import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.validate.auth.WechatGroup; import org.dromara.common.satoken.utils.LoginHelper; @@ -59,7 +60,7 @@ public class XcxAuthStrategy implements IAuthStrategy { LoginHelper.login(loginUser, model); loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); - loginService.recordLoginInfo(loginUser); + remoteUserService.recordLoginInfo(loginUser.getUserId(), ServletUtils.getClientIP()); 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 56e39ef7..a7e90904 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,6 +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.tenant.helper.TenantHelper; import org.dromara.system.api.RemoteUserService; @@ -161,13 +162,17 @@ public class RemoteUserServiceImpl implements RemoteUserService { /** * 更新用户信息 * - * @param remoteUserBo 用户信息 + * @param userId 用户ID + * @param ip IP地址 */ @Override - public void updateUser(RemoteUserBo remoteUserBo) { - SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class); - sysUserBo.setUpdateBy(remoteUserBo.getUserId()); - userService.updateUser(sysUserBo); + public void recordLoginInfo(Long userId, String ip) { + SysUser sysUser = new SysUser(); + sysUser.setUserId(userId); + sysUser.setLoginIp(ip); + sysUser.setLoginDate(DateUtils.getNowDate()); + sysUser.setUpdateBy(userId); + userMapper.updateById(sysUser); } }