This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/java/com/nis/util/DictUtils.java
2017-12-29 16:18:40 +08:00

147 lines
3.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.nis.util;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.SysDataDictionaryName;
import com.nis.web.dao.SysDictDao;
import com.nis.web.service.SpringContextHolder;
/**
* 系统数据字典工具类
* @author Administrator
*
*/
public class DictUtils {
private final static SysDictDao dictDao = SpringContextHolder.getBean(SysDictDao.class);
public static Map<String, List<SysDataDictionaryItem>> getDictData() {
Map<String, List<SysDataDictionaryItem>> dictMap = (Map<String, List<SysDataDictionaryItem>>)CacheUtils.get(Constants.CACHE_DICT_MAP);
if (StringUtil.isEmpty(dictMap)) {
dictMap = Maps.newHashMap();
List<SysDataDictionaryName> dicList = dictDao.findAllList(new SysDataDictionaryName());
for (SysDataDictionaryName dict : dicList) {
dictMap.put(dict.getMark(), dict.getDictItemList());
}
CacheUtils.put(Constants.CACHE_DICT_MAP, dictMap);
}
return dictMap;
}
/**
* 获取词典对应key的所有词条code:value
* @param key
* @return
*/
public static Map<String,String> getDictOption(String key) {
List<SysDataDictionaryItem> itemList = getDictData().get(key);
Map<String, String> itemMap = Maps.newHashMap();
for (SysDataDictionaryItem item : itemList) {
itemMap.put(item.getItemCode(), item.getItemValue());
}
return itemMap;
}
/**
* 获取词典对应key的所有词条value:code
* @param key
* @return
*/
public static Map<String,String> getDictOptionInReversion(String key) {
List<SysDataDictionaryItem> itemList = getDictData().get(key);
Map<String, String> itemMap = Maps.newHashMap();
for (SysDataDictionaryItem item : itemList) {
itemMap.put(item.getItemValue(), item.getItemCode());
}
return itemMap;
}
public static List<SysDataDictionaryItem> getDictList(String key){
List<SysDataDictionaryItem> itemList = getDictData().get(key);
if (StringUtil.isEmpty(itemList)) {
itemList = Lists.newArrayList();
}
return itemList;
}
public static String getDictLabels(String dictKey, String itemCodes, String defaultValue){
Map<String, String> itemMap = getDictOption(dictKey);
if (!StringUtil.isEmpty(itemMap)) {
List<String> valueList = Lists.newArrayList();
for (String itemCode : StringUtils.split(itemCodes, ",")){
valueList.add(itemMap.get(itemCode));
}
return StringUtils.join(valueList, ",");
}
return defaultValue;
}
/**
* 获取字典词条标签
* @param value
* @param type
* @param defaultValue
* @return
*/
public static String getDictLabel(String dictKey, String itemCode, String defaultValue){
String itemLabel = getDictOption(dictKey).get(itemCode);
return StringUtil.isBlank(itemLabel) ? defaultValue : itemLabel;
}
public static String getDictLabel(String dictKey, String itemCode){
return getDictLabel(dictKey, itemCode, "默认");
}
public static String getDictCode(String dictKey, String itemValue, String defaultValue){
String itemCode = getDictOptionInReversion(dictKey).get(itemValue);
return StringUtil.isBlank(itemCode) ? defaultValue : itemCode;
}
public static String getDictCode(String dictKey, String itemValue){
return getDictCode(dictKey, itemValue, "默认");
}
/**
* 返回字典列表JSON
* @param type
* @return
*/
public static String getDictListJson(String key){
return JsonMapper.toJsonString(getDictList(key));
}
}