Search in sources :

Example 1 with LoadService

use of top.tangyh.basic.interfaces.echo.LoadService in project lamp-util by zuihou.

the class EchoServiceImpl method load.

/**
 * 加载数据
 * <p>
 * 注意: 需要自行实现LoadService的2个方法
 *
 * @param typeMap    类型
 * @param isUseCache 是否使用内存缓存
 */
@SneakyThrows
private void load(Map<LoadKey, Map<Serializable, Object>> typeMap, boolean isUseCache) {
    for (Map.Entry<LoadKey, Map<Serializable, Object>> entries : typeMap.entrySet()) {
        LoadKey type = entries.getKey();
        Map<Serializable, Object> valueMap = entries.getValue();
        Set<Serializable> keys = valueMap.keySet();
        if (Echo.ENUM_API.equalsIgnoreCase(type.getApi())) {
            Map<Serializable, Object> value = new HashMap<>();
            valueMap.forEach((k, v) -> {
                if (k instanceof BaseEnum) {
                    value.put(k, ((BaseEnum) k).getDesc());
                } else {
                    value.put(k, k);
                }
            });
            typeMap.put(type, value);
        } else {
            LoadService loadService = strategyMap.get(type.getApi());
            if (loadService == null) {
                log.warn("处理字段的数据回显时,没有找到@Echo注解中api属性的实例:[{}]。 请确保[{}]实现了 LoadService,并注册到Spring容器中,若api指定的是ServiceImpl,请确保在同一个服务内。", type.getApi(), type.getApi());
                continue;
            }
            CacheLoadKeys lk = new CacheLoadKeys(type, loadService, keys);
            Map<Serializable, Object> value = ips.getGuavaCache().getEnabled() && isUseCache ? caches.get(lk) : lk.loadMap();
            typeMap.put(type, value);
        }
    }
}
Also used : LoadKey(top.tangyh.basic.echo.manager.LoadKey) Serializable(java.io.Serializable) LoadService(top.tangyh.basic.interfaces.echo.LoadService) HashMap(java.util.HashMap) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) BaseEnum(top.tangyh.basic.interfaces.BaseEnum) CacheLoadKeys(top.tangyh.basic.echo.manager.CacheLoadKeys) HashMap(java.util.HashMap) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) SneakyThrows(lombok.SneakyThrows)

Aggregations

Serializable (java.io.Serializable)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 SneakyThrows (lombok.SneakyThrows)1 CacheLoadKeys (top.tangyh.basic.echo.manager.CacheLoadKeys)1 LoadKey (top.tangyh.basic.echo.manager.LoadKey)1 BaseEnum (top.tangyh.basic.interfaces.BaseEnum)1 LoadService (top.tangyh.basic.interfaces.echo.LoadService)1