添加登录后信息存redis的方法

This commit is contained in:
刘倡
2025-06-16 09:13:00 +08:00
parent 97bb1afa26
commit a44f07962d

View File

@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.AuthorityEntity;
import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityEntity;
import com.chinaunicom.mall.ebtp.cloud.userinfo.starter.service.UserInfoService;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
@ -43,10 +44,12 @@ import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.REDIS_USER_KEY;
/**
* 对数据表 base_user 操作的 serviceImpl
* @author yss
*
* @author yss
*/
@Slf4j
@Service
@ -66,10 +69,17 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
@Resource
private BaseUserTokenService baseUserTokenService;
@Autowired
private UserInfoService userInfoService;
@Autowired(required = false)
@Qualifier("cacheRedisTemplate")
private RedisTemplate<String, Object> redisTemplate;
@Autowired(required = false)
@Qualifier("userinfoRedisTemplate")
private RedisTemplate<String, Object> userinfoRedisTemplate;
@Override
public BaseSelf idcardLogin(String account, String password) {
@ -94,7 +104,19 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
throw new RuntimeException("用户名或密码错误!");
}
return userLogin(user);
BaseSelf baseSelf = userLogin(user);
String token = baseSelf.getToken();
//缓存用户信息
BaseCacheUser baseCacheUser = new BaseCacheUser();
BeanUtils.copyProperties(user, baseCacheUser);
//存入缓存redis
userinfoRedisTemplate.opsForValue().set(REDIS_USER_KEY + token,
baseCacheUser, Long.parseLong(valid_time_limit), TimeUnit.HOURS);
userInfoService.getUserInfo(token);
return baseSelf;
} catch (BadPaddingException e) {
log.error("RSA解密异常", e);
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("用户名或密码错误", true);
@ -219,13 +241,15 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
securityEntity.setStaffId(baseUser.getEmployeeNumber());
securityEntity.setUsername(baseUser.getName());
securityEntity.setStaffName(baseUser.getName());
List<AuthorityEntity> authorityList =this.baseUserMapper.selectRoleByUserId(baseUser.getUserId());;
List<AuthorityEntity> authorityList = this.baseUserMapper.selectRoleByUserId(baseUser.getUserId());
;
securityEntity.setAuthorityList(authorityList);
return securityEntity;
}
/**
* 本地token换取用户信息
*
* @param token
* @return
*/