1. 需求分析
编写excel导入时遇到一个场景,需要将某几个字段的值转为字典中配置的值再存储到数据库中,所以需要编写一个通用的处理方法进行处理,这里采取function来创建通用的处理方法。
2. 代码实现
public static void convertName2Id(T data, Function getName, Map map,Consumer success, Consumer error){
String name = getName.apply(data);
if(StringUtils.isNotBlank(name) && map.containsKey(name.trim())){
String s = map.get(name.trim());
success.accept(s);
}else {
error.accept(name);
}
}
data为处理的实体类,getName为需要翻译字段的get方法,map为字典映射,success为对应字段的set方法,error为失败后的处理方法,这里使用一个list进行错误信息存储。
用例:
convertName2Id(inputEntity,TalentEducationImportDTO::getDegree, dictNameMap,
inputEntity::setDegreeCode,
name -> {errMsgList.add("字典值不存在:" + name);}
);