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 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; }