package com.consum.base.cache;
|
|
import com.consum.base.Constants;
|
import com.consum.base.FinSysTenantUserCacheProvider;
|
import com.consum.base.service.FinSysTenantUserService;
|
import com.consum.model.po.FinSysTenantUser;
|
import com.walker.support.redis.cache.RedisCacheProvider;
|
|
/**
|
* Redis实现的后台登录用户
|
*
|
* @author 王涵
|
* @date 2023-07-18
|
*/
|
public class RedisFinSysTenantUserCache extends RedisCacheProvider<FinSysTenantUser>
|
implements FinSysTenantUserCacheProvider {
|
|
public RedisFinSysTenantUserCache() {
|
this.setUseRedis(true);
|
this.setLoadPage(false);
|
}
|
|
@Override
|
public FinSysTenantUser get(String userId) {
|
FinSysTenantUser finSysTenantUser = this.getCacheData(userId);
|
if (finSysTenantUser == null) {
|
finSysTenantUser = this.finSysTenantUserService.queryOneByUserId(userId);
|
if (finSysTenantUser == null) {
|
logger.warn("从数据库未查询到用户,无法缓存,userId = {}", userId);
|
return null;
|
}
|
// TODO 超级管理员
|
if (finSysTenantUser.getId() == 0) {
|
finSysTenantUser.setTenantId("0");
|
}
|
this.putCacheData(userId, finSysTenantUser);
|
}
|
return finSysTenantUser;
|
}
|
|
@Override
|
public void save(FinSysTenantUser e) {
|
this.putCacheData(String.valueOf(e.getSysUserId()), e);
|
this.putCacheData(String.valueOf(e.getId()), e);
|
}
|
|
@Override
|
public void update(FinSysTenantUser e) {
|
this.updateCacheData(String.valueOf(e.getSysUserId()), e);
|
this.updateCacheData(String.valueOf(e.getId()), e);
|
}
|
|
@Override
|
public void remove(String userId) {
|
this.removeCacheData(userId);
|
}
|
|
@Override
|
public FinSysTenantUser getByUserId(String userId) {
|
FinSysTenantUser finSysTenantUser = this.getCacheData(userId);
|
if (finSysTenantUser == null) {
|
finSysTenantUser = this.finSysTenantUserService.queryOneById(userId);
|
if (finSysTenantUser == null) {
|
logger.warn("从数据库未查询到用户,无法缓存,userId = {}", userId);
|
return null;
|
}
|
this.putCacheData(userId, finSysTenantUser);
|
}
|
return finSysTenantUser;
|
}
|
|
@Override
|
public String getProviderName() {
|
return Constants.CACHE_NAME_FIN_TENANT_USER;
|
}
|
|
@Override
|
public Class<?> getProviderType() {
|
return FinSysTenantUser.class;
|
}
|
|
public void setFinSysTenantUserService(FinSysTenantUserService finSysTenantUserService) {
|
this.finSysTenantUserService = finSysTenantUserService;
|
}
|
|
private FinSysTenantUserService finSysTenantUserService;
|
}
|