diff --git a/src/main/java/com/boot/security/server/service/UserService.java b/src/main/java/com/boot/security/server/service/UserService.java index 1528d92..48cf9ab 100644 --- a/src/main/java/com/boot/security/server/service/UserService.java +++ b/src/main/java/com/boot/security/server/service/UserService.java @@ -13,4 +13,5 @@ public interface UserService { void changePassword(String username, String oldPassword, String newPassword); + void updateLoginUserCache(Long userId); } diff --git a/src/main/java/com/boot/security/server/service/impl/UserServiceImpl.java b/src/main/java/com/boot/security/server/service/impl/UserServiceImpl.java index 60a2c9d..46eb919 100644 --- a/src/main/java/com/boot/security/server/service/impl/UserServiceImpl.java +++ b/src/main/java/com/boot/security/server/service/impl/UserServiceImpl.java @@ -4,6 +4,7 @@ import java.util.List; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -83,15 +84,21 @@ public class UserServiceImpl implements UserService { public SysUser updateUser(UserDto userDto) { userDao.update(userDto); saveUserRoles(userDto.getId(), userDto.getRoleIds()); - updateUserCache(userDto.getId()); + updateLoginUserCache(userDto.getId()); return userDto; } - private void updateUserCache(Long id) { - SysUser sysUser = userDao.getById(id); - String token = tokenService.getTokenByUserId(id); + /** + * 修改登陆用户的缓存 + */ + @Async + @Override + public void updateLoginUserCache(Long userId) { + String token = tokenService.getTokenByUserId(userId); if (!StringUtils.isEmpty(token)) { + SysUser sysUser = userDao.getById(userId); + LoginUser loginUser = new LoginUser(); loginUser.setToken(token); BeanUtils.copyProperties(sysUser, loginUser); @@ -101,5 +108,6 @@ public class UserServiceImpl implements UserService { tokenService.updateLoginUser(loginUser); } + } }