package com.consum.base.cache; import java.util.ArrayList; import java.util.List; import com.consum.base.Constants; import com.consum.base.FinSysTenantCacheProvider; import com.consum.base.service.FinSysTenantService; import com.consum.model.po.FinSysTenant; import com.walker.infrastructure.ApplicationRuntimeException; import com.walker.infrastructure.utils.JsonUtils; import com.walker.support.redis.cache.RedisCacheProvider; /** * 区划缓存 * * @作者:power @时间:2023/7/20 20:35 */ public class RedisFinSysTenantCache extends RedisCacheProvider implements FinSysTenantCacheProvider { public RedisFinSysTenantCache() { this.setUseRedis(true); this.setLoadPage(false); } @Override public FinSysTenant get(String code) { FinSysTenant finSysTenant = this.getCacheData(code); if (finSysTenant == null) { finSysTenant = this.finSysTenantService.queryOneByCode(code); if (finSysTenant == null) { logger.warn("从数据库未查询到区划,无法缓存,code = {}", code); return null; } // 2023-07-26,时克英,区划相对固定,无需设置失效时间,让他永远存储吧。 // this.putCacheData(code, finSysTenant,7200); this.putCacheData(code, finSysTenant); } return finSysTenant; } @Override public void save(FinSysTenant e) { this.putCacheData(e.getCode(), e); } @Override public void update(FinSysTenant e) { this.updateCacheData(e.getCode(), e); } @Override public void remove(String code) { this.removeCacheData(code); } @Override public FinSysTenant getById(String id) { FinSysTenant finSysTenant = this.getCacheData(id); if (finSysTenant == null) { finSysTenant = this.finSysTenantService.get(new FinSysTenant(Long.parseLong(id))); if (finSysTenant == null) { logger.warn("从数据库未查询到区划,无法缓存,id = {}", id); return null; } this.putCacheData(finSysTenant.getId().toString(), finSysTenant); } return finSysTenant; } @Override public List selectAll() { List allTree = new ArrayList<>(); FinSysTenant temp = null; for (String value : this.getCache().getIterator(null)) { try { temp = JsonUtils.jsonStringToObject(value, FinSysTenant.class); } catch (Exception ex) { throw new ApplicationRuntimeException("redis存储'EbProductBrand'解析错吴:" + value, ex); } allTree.add(temp); } return allTree; } @Override public String getProviderName() { return Constants.CACHE_NAME_FIN_TENANT; } @Override public Class getProviderType() { return FinSysTenant.class; } public void setFinSysTenantService(FinSysTenantService finSysTenantService) { this.finSysTenantService = finSysTenantService; } private FinSysTenantService finSysTenantService; }