package com.huaxu.dict; import com.huaxu.client.UserCenterClient; import com.huaxu.org.Org; import com.huaxu.util.RedisUtil; import com.huaxu.util.UserUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; @Component public class DictUtil { private static final String REDIS_CACHE_KEY_DICTINFO = "dict%s"; @Autowired private RedisUtil redisUtil; @Autowired private UserCenterClient userCenterClient; public String getDictName(String code,Integer value) { String key = String.format(REDIS_CACHE_KEY_DICTINFO, code); String keysValue = (String) redisUtil.getHashValues(key,value+""); if (keysValue == null) { Map keysValues = updateDictInfo(key,code); keysValue = keysValues.get(value+""); } return keysValue; }; private Map updateDictInfo(String key,String code) { Map keysValues = new HashMap<>(); Dict dict = new Dict(); dict.setParentDictCode(code); List dicts = userCenterClient.selectDictList(dict).getData(); for (Dict item : dicts) { keysValues.put(item.getDictCode() + "", item.getDictValue()); } redisUtil.putHashValues(key, keysValues); return keysValues; } }