/**
|
* Copyright © 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
|
*/
|
package com.jeeplus.modules.sys.utils;
|
|
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.jeeplus.common.utils.CacheUtils;
|
import com.jeeplus.common.utils.SpringContextHolder;
|
import com.jeeplus.modules.sign.entity.FormSign;
|
import com.jeeplus.modules.sportsign.entity.SportSign;
|
import com.jeeplus.modules.sys.dao.DictDao;
|
import com.jeeplus.modules.sys.entity.Dict;
|
|
/**
|
* 字典工具类
|
* @author jeeplus
|
* @version 2013-5-29
|
*/
|
public class DictUtils {
|
|
private static DictDao dictDao = SpringContextHolder.getBean(DictDao.class);
|
|
public static final String CACHE_DICT_MAP = "dictMap";
|
|
public static String getDictLabel(String value, String type, String defaultValue){
|
if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(value)){
|
for (Dict dict : getDictList(type)){
|
if (type.equals(dict.getType()) && value.equals(dict.getValue())){
|
return dict.getLabel();
|
}
|
}
|
}
|
return defaultValue;
|
}
|
|
public static String getDictLabels(String values, String type, String defaultValue){
|
if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(values)){
|
List<String> valueList = Lists.newArrayList();
|
for (String value : StringUtils.split(values, ",")){
|
valueList.add(getDictLabel(value, type, defaultValue));
|
}
|
return StringUtils.join(valueList, ",");
|
}
|
return defaultValue;
|
}
|
|
public static String getDictValue(String label, String type, String defaultLabel){
|
if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(label)){
|
for (Dict dict : getDictList(type)){
|
if (type.equals(dict.getType()) && label.equals(dict.getLabel())){
|
return dict.getValue();
|
}
|
}
|
}
|
return defaultLabel;
|
}
|
|
public static List<Dict> getDictList(String type){
|
@SuppressWarnings("unchecked")
|
Map<String, List<Dict>> dictMap = (Map<String, List<Dict>>)CacheUtils.get(CACHE_DICT_MAP);
|
if (dictMap==null){
|
dictMap = Maps.newHashMap();
|
for (Dict dict : dictDao.findAllList(new Dict())){
|
List<Dict> dictList = dictMap.get(dict.getType());
|
if (dictList != null){
|
dictList.add(dict);
|
}else{
|
dictMap.put(dict.getType(), Lists.newArrayList(dict));
|
}
|
}
|
CacheUtils.put(CACHE_DICT_MAP, dictMap);
|
}
|
List<Dict> dictList = dictMap.get(type);
|
if (dictList == null){
|
dictList = Lists.newArrayList();
|
}
|
return dictList;
|
}
|
|
//字典转换 : dictid -> dict_Type 便于导出时直接显示 type
|
public static void setSportSignDictType(List<SportSign> list){
|
|
for(SportSign s:list){
|
String dep_type=getDictLabel(s.getDepId(), "dep_type", "");
|
s.setDepId(dep_type);
|
}
|
}
|
public static void setSignDictType(List<FormSign> list){
|
|
for(FormSign s:list){
|
String dep_type=getDictLabel(s.getDepId(), "dep_type", "");
|
s.setDepId(dep_type);
|
}
|
}
|
}
|