mirror of https://gitee.com/stylefeng/roses
【7.1.1】新增getEffectiveLoginUser
parent
de762eda6a
commit
2c109e4ad6
|
@ -34,7 +34,6 @@ import cn.stylefeng.roses.kernel.auth.api.expander.AuthConfigExpander;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||||
import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil;
|
import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil;
|
||||||
import cn.stylefeng.roses.kernel.system.api.UserServiceApi;
|
import cn.stylefeng.roses.kernel.system.api.UserServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.UserLoginInfoDTO;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
@ -115,8 +114,7 @@ public class LoginUserImpl implements LoginUserApi {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从新组装一次loginUser,保证loginUser中数据的时效性
|
// 从新组装一次loginUser,保证loginUser中数据的时效性
|
||||||
UserLoginInfoDTO userLoginInfo = userServiceApi.getUserLoginInfo(session.getAccount());
|
return userServiceApi.getEffectiveLoginUser(session);
|
||||||
return userLoginInfo.getLoginUser();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
*/
|
*/
|
||||||
package cn.stylefeng.roses.kernel.system.api;
|
package cn.stylefeng.roses.kernel.system.api;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.OnlineUserDTO;
|
import cn.stylefeng.roses.kernel.system.api.pojo.user.OnlineUserDTO;
|
||||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO;
|
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO;
|
||||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.UserLoginInfoDTO;
|
import cn.stylefeng.roses.kernel.system.api.pojo.user.UserLoginInfoDTO;
|
||||||
|
@ -43,7 +44,7 @@ import java.util.Set;
|
||||||
public interface UserServiceApi {
|
public interface UserServiceApi {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户登录需要的详细信息
|
* 获取用户登录需要的详细信息(用在第一次获取登录用户)
|
||||||
*
|
*
|
||||||
* @param account 账号
|
* @param account 账号
|
||||||
* @return 用户登录需要的详细信息
|
* @return 用户登录需要的详细信息
|
||||||
|
@ -52,6 +53,18 @@ public interface UserServiceApi {
|
||||||
*/
|
*/
|
||||||
UserLoginInfoDTO getUserLoginInfo(String account);
|
UserLoginInfoDTO getUserLoginInfo(String account);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取刷新后的登录用户(用在用户登录之后调用)
|
||||||
|
* <p>
|
||||||
|
* 以往用户登录后直接从session缓存中获取用户信息,不能及时更新,需要退出才可以获取最新信息
|
||||||
|
* <p>
|
||||||
|
* 本方法解决了实时获取当前登录用户不准确的问题
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2021/7/29 22:03
|
||||||
|
*/
|
||||||
|
LoginUser getEffectiveLoginUser(LoginUser loginUser);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新用户的登录信息,一般为更新用户的登录时间和ip
|
* 更新用户的登录信息,一般为更新用户的登录时间和ip
|
||||||
*
|
*
|
||||||
|
|
|
@ -571,6 +571,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
return UserLoginInfoFactory.userLoginInfoDTO(sysUser, roleResponseList, dataScopeResponse, userOrgInfo, resourceUrlsListByCodes, roleButtonCodes);
|
return UserLoginInfoFactory.userLoginInfoDTO(sysUser, roleResponseList, dataScopeResponse, userOrgInfo, resourceUrlsListByCodes, roleButtonCodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LoginUser getEffectiveLoginUser(LoginUser loginUser) {
|
||||||
|
|
||||||
|
UserLoginInfoDTO userLoginInfoDTO = this.getUserLoginInfo(loginUser.getAccount());
|
||||||
|
LoginUser newLoginUser = userLoginInfoDTO.getLoginUser();
|
||||||
|
|
||||||
|
// 设置登录用户原有的一些信息
|
||||||
|
newLoginUser.setToken(loginUser.getToken());
|
||||||
|
newLoginUser.setTenantCode(loginUser.getTenantCode());
|
||||||
|
newLoginUser.setWsUrl(loginUser.getWsUrl());
|
||||||
|
|
||||||
|
return newLoginUser;
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public void updateUserLoginInfo(Long userId, Date date, String ip) {
|
public void updateUserLoginInfo(Long userId, Date date, String ip) {
|
||||||
|
|
Loading…
Reference in New Issue