数据库设计 type 转换成typeName 方便用户看

65 阅读1分钟
List list = (List) new UserWrapper(BeanUtil.objectsToMaps(page.getRecords())).warp();
page.setRecords(list);
/**
 * 控制器查询结果的包装类基类
 */
public abstract class BaseControllerWrapper {

    public Object obj = null;

    public BaseControllerWrapper(Object obj) {
        this.obj = obj;
    }

    @SuppressWarnings("unchecked")
    public Object warp() {

        if (this.obj instanceof List) {
            List<Map<String, Object>> list = (List<Map<String, Object>>) this.obj;
            for (Map<String, Object> map : list) {
                warpTheMap(map);
            }
            return list;
        } else if (this.obj instanceof Map) {
            Map<String, Object> map = (Map<String, Object>) this.obj;
            warpTheMap(map);
            return map;
        } else {
            return this.obj;
        }
    }

    /**
     * 数据转换
     *
     * @param map
     */
    protected abstract void warpTheMap(Map<String, Object> map);
}
public class UserWrapper extends BaseControllerWrapper {

    public UserWrapper(List<Map<String, Object>> list) {
        super(list);
    }

    @Override
    public void warpTheMap(Map<String, Object> map) {
        map.put("sexName", ConstantFactory.me().getSexName((Integer) map.get("sex")));
        if (StringUtil.isNotNullOrEmpty(map.get("roleid"))) {
            map.put("roleName", ConstantFactory.me().getRoleName((String) map.get("roleid")));
        }
        map.put("statusName", ConstantFactory.me().getStatusName((Integer) map.get("status")));
        map.put("typeName", ConstantFactory.me().getUserTypeName((String) map.get("type")));
    }

}
 
/**
 * 将对象装换为map
 *
 * @param bean
 * @return
 */
public static <T> Map<String, Object> beanToMap(T bean) {
    Map<String, Object> map = Maps.newHashMap();
    if (bean != null) {
        BeanMap beanMap = BeanMap.create(bean);
        for (Object key : beanMap.keySet()) {
            map.put(key + "", beanMap.get(key));
        }
    }
    return map;
}

/**
 * 将map装换为javabean对象
 *
 * @param map
 * @param bean
 * @return
 */
public static <T> T mapToBean(Map<String, Object> map, T bean) {
    BeanMap beanMap = BeanMap.create(bean);
    beanMap.putAll(map);
    return bean;
}

/**
 * 将List<T>转换为List<Map<String, Object>>
 *
 * @param objList
 * @return
 */
public static <T> List<Map<String, Object>> objectsToMaps(List<T> objList) {
    List<Map<String, Object>> list = Lists.newArrayList();
    if (objList != null && objList.size() > 0) {
        Map<String, Object> map = null;
        T bean = null;
        for (int i = 0, size = objList.size(); i < size; i++) {
            bean = objList.get(i);
            map = beanToMap(bean);
            list.add(map);
        }
    }
    return list;
}

/**
 * 将List<Map<String,Object>>转换为List<T>
 *
 * @param maps
 * @param clazz
 * @return
 * @throws InstantiationException
 * @throws IllegalAccessException
 */
public static <T> List<T> mapsToObjects(List<Map<String, Object>> maps, Class<T> clazz)
        throws InstantiationException, IllegalAccessException {
    List<T> list = Lists.newArrayList();
    if (maps != null && maps.size() > 0) {
        Map<String, Object> map = null;
        T bean = null;
        for (int i = 0, size = maps.size(); i < size; i++) {
            map = maps.get(i);
            bean = clazz.newInstance();
            mapToBean(map, bean);
            list.add(bean);
        }
    }
    return list;
}

public static <T> List<T> objectToObjects(List<Object> objectList, Class<T> clazz)
        throws InstantiationException, IllegalAccessException {
    List<T> list = Lists.newArrayList();
    if (objectList != null && objectList.size() > 0) {
        Object source = null;
        T bean = null;
        for (int i = 0, size = objectList.size(); i < size; i++) {
            source = objectList.get(i);
            bean = clazz.newInstance();
            BeanUtils.copyProperties(source, bean);
            list.add(bean);
        }
    }
    return list;
}