jeecgBoot将实体转为Map对象
接口:
interface CommonService
Map<String, Object> convertObjToMap(Object obj, boolean isIgnore, String... columns);
实现类:
class CommonServiceImpl implements CommonService
实现方法;
@Override public Map<String, Object> convertObjToMap(Object obj, boolean isIgnore, String... columns) { Map<String, Object> result = new HashMap<>(); Field[] fields = obj.getClass().getDeclaredFields(); for (Field field : fields) { if (isIgnore) { if (Arrays.asList(columns).contains(field.getName())) continue; } else { if (!Arrays.asList(columns).contains(field.getName())) continue; } field.setAccessible(true); try { // 如果是日期,则进行转换
if (field.getType().equals(Date.class) && field.get(obj) != null) {
// @DateTimeFormat
if (field.isAnnotationPresent(DateTimeFormat.class)) {
String format = field.getAnnotation(DateTimeFormat.class).pattern();
result.put(field.getName(), DateTime.of((Date) field.get(obj)).toString(format));
continue;
} else {
result.put(field.getName(), DateTime.of((Date) field.get(obj)).toString("yyyy-MM-dd HH:mm:ss"));
continue;
}
}
// 如果添加了注解Dict,则解析Dict内容 if (field.isAnnotationPresent(Dict.class)) { String dictCode = field.getAnnotation(Dict.class).dicCode(); Map<String, String> dictMaps = sysBaseAPI.queryDictItemsByCode(dictCode) .stream() .collect(Collectors.toMap(DictModel::getValue, DictModel::getText)); result.put(field.getName() + "_dictText", dictMaps.get(field.get(obj))); } result.put(field.getName(), field.get(obj)); } catch (Exception e) { System.err.println("UtilTools.convertObjToMap 发生错误:" + e.getMessage()); result.put(field.getName(), "nil"); } field.setAccessible(false); } return result; }