package com.vci.ubcs.omd.cache;
|
|
import com.vci.ubcs.omd.entity.Attribute;
|
import com.vci.ubcs.omd.feign.IAttributeClient;
|
import org.springblade.core.cache.utils.CacheUtil;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.SpringUtil;
|
import org.springblade.core.tool.utils.StringPool;
|
|
import java.util.List;
|
|
import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
|
|
|
/**
|
* 元数据(属性)缓存工具类
|
*
|
* @author Chill
|
*/
|
public class AttributeCache {
|
|
private static final String ATTR_ID = "attr:id";
|
private static final String ATTR_LIST = "attr:list";
|
private static final String ATTR_CACHE = "ubcs:attr";
|
|
private static IAttributeClient attrClient;
|
|
private static IAttributeClient getAttributeClient() {
|
if (attrClient == null) {
|
attrClient = SpringUtil.getBean(IAttributeClient.class);
|
}
|
return attrClient;
|
}
|
|
/**
|
* 获取元数据实体
|
*
|
* @param id 主键
|
* @return 元数据实体对象
|
*/
|
public static Attribute getById(Long id) {
|
String keyPrefix = ATTR_ID.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
|
return CacheUtil.get(ATTR_CACHE, keyPrefix, id, () -> {
|
R<Attribute> result = getAttributeClient().getById(id);
|
return result.getData();
|
});
|
}
|
|
/**
|
* 获取元数据集合
|
*
|
* @param key 属性名称
|
*/
|
public static List<Attribute> getList(String key) {
|
String keyPrefix = ATTR_LIST.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
|
return CacheUtil.get(DICT_CACHE, keyPrefix, key, () -> {
|
R<List<Attribute>> result = getAttributeClient().getList(key);
|
return result.getData();
|
});
|
}
|
|
}
|