fix 修复错误的远程调用导致登录异常 ;

dev
Michelle.Chung 2 years ago
parent 52955e5290
commit 054ded428f

@ -63,5 +63,11 @@ public interface RemoteUserService {
*/ */
String selectUserNameById(Long userId); String selectUserNameById(Long userId);
void recordLoginInfo(Long userId); /**
*
*
* @param remoteUserBo
*/
void updateUser(RemoteUserBo remoteUserBo);
} }

@ -136,6 +136,20 @@ public class SysLoginService {
SpringUtils.context().publishEvent(logininforEvent); 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);
}
/** /**
* *
*/ */

@ -64,7 +64,7 @@ public class EmailAuthStrategy implements IAuthStrategy {
LoginHelper.login(loginUser, model); LoginHelper.login(loginUser, model);
loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); 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 loginVo = new LoginVo();
loginVo.setAccessToken(StpUtil.getTokenValue()); loginVo.setAccessToken(StpUtil.getTokenValue());

@ -6,6 +6,7 @@ import cn.dev33.satoken.stp.StpUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.rpc.RpcContext;
import org.dromara.auth.domain.vo.LoginVo; import org.dromara.auth.domain.vo.LoginVo;
import org.dromara.common.core.exception.CaptchaException; import org.dromara.common.core.exception.CaptchaException;
import org.dromara.common.core.domain.model.LoginBody; 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.enums.LoginType;
import org.dromara.common.core.exception.user.CaptchaExpireException; import org.dromara.common.core.exception.user.CaptchaExpireException;
import org.dromara.common.core.utils.MessageUtils; 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.StringUtils;
import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.utils.ValidatorUtils;
import org.dromara.common.core.validate.auth.PasswordGroup; import org.dromara.common.core.validate.auth.PasswordGroup;
@ -77,7 +79,7 @@ public class PasswordAuthStrategy implements IAuthStrategy {
LoginHelper.login(loginUser, model); LoginHelper.login(loginUser, model);
loginService.recordLogininfor(loginUser.getTenantId(), username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); 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 loginVo = new LoginVo();
loginVo.setAccessToken(StpUtil.getTokenValue()); loginVo.setAccessToken(StpUtil.getTokenValue());

@ -64,7 +64,7 @@ public class SmsAuthStrategy implements IAuthStrategy {
LoginHelper.login(loginUser, model); LoginHelper.login(loginUser, model);
loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); 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 loginVo = new LoginVo();
loginVo.setAccessToken(StpUtil.getTokenValue()); loginVo.setAccessToken(StpUtil.getTokenValue());

@ -101,7 +101,7 @@ public class SocialAuthStrategy implements IAuthStrategy {
LoginHelper.login(loginUser, model); LoginHelper.login(loginUser, model);
loginService.recordLogininfor(loginUser.getTenantId(), socialVo.getUserName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); 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 loginVo = new LoginVo();
loginVo.setAccessToken(StpUtil.getTokenValue()); loginVo.setAccessToken(StpUtil.getTokenValue());

@ -59,7 +59,7 @@ public class XcxAuthStrategy implements IAuthStrategy {
LoginHelper.login(loginUser, model); LoginHelper.login(loginUser, model);
loginService.recordLogininfor(loginUser.getTenantId(), loginUser.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); 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 loginVo = new LoginVo();
loginVo.setAccessToken(StpUtil.getTokenValue()); loginVo.setAccessToken(StpUtil.getTokenValue());

@ -8,9 +8,7 @@ import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.enums.UserStatus; import org.dromara.common.core.enums.UserStatus;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.exception.user.UserException; 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.MapstructUtils;
import org.dromara.common.core.utils.ServletUtils;
import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.bo.RemoteUserBo; import org.dromara.system.api.domain.bo.RemoteUserBo;
@ -161,18 +159,15 @@ public class RemoteUserServiceImpl implements RemoteUserService {
} }
/** /**
* *
* *
* @param userId ID * @param remoteUserBo
*/ */
@Override @Override
public void recordLoginInfo(Long userId) { public void updateUser(RemoteUserBo remoteUserBo) {
SysUser sysUser = new SysUser(); SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class);
sysUser.setUserId(userId); sysUserBo.setUpdateBy(remoteUserBo.getUserId());
sysUser.setLoginIp(ServletUtils.getClientIP()); userService.updateUser(sysUserBo);
sysUser.setLoginDate(DateUtils.getNowDate());
sysUser.setUpdateBy(userId);
userMapper.updateById(sysUser);
} }
} }

Loading…
Cancel
Save