From 8fe6c493557ae095d1c3e2322781174f4b8c80a4 Mon Sep 17 00:00:00 2001 From: "wei.zhang2" Date: Mon, 16 Oct 2017 10:02:05 +0800 Subject: [PATCH] 1 --- .../security/server/service/UserService.java | 1 + .../server/service/impl/UserServiceImpl.java | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) 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); } + } }