fix: 用户退出状态完善
This commit is contained in:
parent
8d6ad3b386
commit
449001973a
|
@ -67,7 +67,7 @@ public class UserFactory {
|
|||
setUpdateUser(userId, ipAddr, ipRegion);
|
||||
|
||||
// 将用户登录保存在用户登录日志表中
|
||||
userLoginLogMapper.insert(setUserLoginLog(user, token, ipAddr, ipRegion));
|
||||
userLoginLogMapper.insert(setUserLoginLog(user, token, ipAddr, ipRegion, "login"));
|
||||
|
||||
// 设置用户返回信息
|
||||
LoginVo loginVo = setLoginVo(user, token, readMeDay, ipAddr, ipRegion);
|
||||
|
@ -142,7 +142,7 @@ public class UserFactory {
|
|||
/**
|
||||
* * 设置用户登录日志内容
|
||||
*/
|
||||
public UserLoginLog setUserLoginLog(AdminUser user, String token, String ipAddr, String ipRegion) {
|
||||
public UserLoginLog setUserLoginLog(AdminUser user, String token, String ipAddr, String ipRegion, String type) {
|
||||
Long userId = user.getId();
|
||||
|
||||
UserLoginLog userLoginLog = new UserLoginLog();
|
||||
|
@ -151,7 +151,7 @@ public class UserFactory {
|
|||
userLoginLog.setIpAddress(ipAddr);
|
||||
userLoginLog.setIpRegion(ipRegion);
|
||||
userLoginLog.setToken(token);
|
||||
userLoginLog.setType("login");
|
||||
userLoginLog.setType(type);
|
||||
userLoginLog.setCreateUser(userId);
|
||||
userLoginLog.setUpdateUser(userId);
|
||||
userLoginLog.setCreateTime(LocalDateTime.now());
|
||||
|
@ -160,7 +160,6 @@ public class UserFactory {
|
|||
// 当前请求request
|
||||
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||
if (requestAttributes == null) return userLoginLog;
|
||||
|
||||
HttpServletRequest request = requestAttributes.getRequest();
|
||||
|
||||
// 获取User-Agent
|
||||
|
|
|
@ -3,6 +3,7 @@ package cn.bunny.services.service.impl;
|
|||
import cn.bunny.common.service.context.BaseContext;
|
||||
import cn.bunny.common.service.exception.BunnyException;
|
||||
import cn.bunny.common.service.utils.JwtHelper;
|
||||
import cn.bunny.common.service.utils.ip.IpUtil;
|
||||
import cn.bunny.common.service.utils.minio.MinioUtil;
|
||||
import cn.bunny.dao.dto.system.files.FileUploadDto;
|
||||
import cn.bunny.dao.dto.system.user.*;
|
||||
|
@ -120,6 +121,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
|
|||
@Override
|
||||
public void logout() {
|
||||
LoginVo loginVo = BaseContext.getLoginVo();
|
||||
Long id = loginVo.getId();
|
||||
|
||||
// 获取IP地址
|
||||
String ipAddr = IpUtil.getCurrentUserIpAddress().getIpAddr();
|
||||
String ipRegion = IpUtil.getCurrentUserIpAddress().getIpRegion();
|
||||
|
||||
// 查询用户信息
|
||||
AdminUser adminUser = getOne(Wrappers.<AdminUser>lambdaQuery().eq(AdminUser::getId, id));
|
||||
UserLoginLog userLoginLog = userFactory.setUserLoginLog(adminUser, loginVo.getToken(), ipAddr, ipRegion, "logout");
|
||||
userLoginLogMapper.insert(userLoginLog);
|
||||
|
||||
// 删除Redis中用户信息
|
||||
redisTemplate.delete(RedisUserConstant.getAdminLoginInfoPrefix(loginVo.getUsername()));
|
||||
}
|
||||
|
||||
|
@ -218,7 +231,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
|
|||
|
||||
// 将用户登录保存在用户登录日志表中
|
||||
UserLoginLog userLoginLog = new UserLoginLog();
|
||||
BeanUtils.copyProperties(adminUser, userLoginLog);
|
||||
userLoginLog.setUserId(adminUser.getId());
|
||||
userLoginLog.setIpAddress(adminUser.getIpAddress());
|
||||
userLoginLog.setIpRegion(adminUser.getIpRegion());
|
||||
|
@ -226,6 +238,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
|
|||
userLoginLog.setType("forcedOffline");
|
||||
userLoginLogMapper.insert(userLoginLog);
|
||||
|
||||
// 删除Redis中用户信息
|
||||
redisTemplate.delete(adminLoginInfoPrefix);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue