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;
    }

 

 
posted @ 2023-01-10 10:31  悠悠乃  阅读(113)  评论(0编辑  收藏  举报