PageBeanUtil.java 2.24 KB
package com.zteits.park.pagepager;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.collections4.CollectionUtils;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.apibase.bean.PageBean;
import org.springframework.beans.BeanUtils;

/**
 * 分页插件结果转换工具类.<br/>
 *
 * Copyright: Copyright (c) 2017  zteits
 *
 * @ClassName: PageBeanUtil.java
 * @Description:
 * @version: v1.0.0
 * @author: wangfs
 * @date: 2017年4月19日   下午4:03:33
 * Modification History:
 * Date             Author          Version            Description
 * ---------------------------------------------------------*
 * 2017年4月19日      wangfs           v1.0.0               创建
 */
public class PageBeanUtil {

    /**
     * 将PageInfo 转换成PageBean.<br/>
     *
     * @param form  PageInfo<R> 对象.<br/>
     * @param to    PageBean<L> 对象.<br/>
     * @param clazz
     */
    public static <R, L> void copyProperties(PageInfo<R> form, PageBean<L> to, Class<L> clazz) {
        if (form != null && to != null && clazz != null) {
            List<L> list = new ArrayList<L>();
            if (CollectionUtils.isNotEmpty(form.getList())) {

                for (R source : form.getList()) {
                    if (null == source) {
                        continue;
                    }
                    try {
                        L target = clazz.newInstance();
                        BeanUtils.copyProperties(source, target);
                        list.add(target);
                    } catch (InstantiationException e) {
                        e.printStackTrace();
                    } catch (IllegalAccessException e) {
                        e.printStackTrace();
                    }
                }
                to.setDataList(list);
                to.setPageNum(form.getPageNum());
                to.setPageSize(form.getPageSize());
                to.setPages(form.getPages());
                to.setPageTotals(Integer.valueOf(String.valueOf(form.getTotal())));
            }
        } else {
            try {
                throw new Exception("源对象,目标对象,clazz 不能为空!");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}