hjl
2024-06-18 aaa3384609da2dfb7d6788a2a2b3d92a2bff0813
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.ruoyi.common.core.utils;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.utils.bean.BeanUtils;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * IPage<T> 转IPage<B>封装工具类
 *
 * @author HJL
 */
public class PageCovertUtil {
    /**
     * 将PageInfo对象泛型中的Po对象转化为Vo对象
     *
     * @param pageInfoPo PageInfo<Po>对象</>
     * @param <V>        V类型
     * @return 分页封装
     */
    public static <P, V> IPage<V> pageVoCovert(IPage<P> pageInfoPo, Class<V> v) {
        // 创建Page对象,实际上是一个ArrayList类型的集合
        try {
            if (pageInfoPo != null) {
 
                IPage<V> page = new Page<>(pageInfoPo.getCurrent(), pageInfoPo.getSize());
                page.setTotal(pageInfoPo.getTotal());
                List<P> records = pageInfoPo.getRecords();
                List<V> list = new ArrayList<>();
                for (P record : records) {
                    if (record != null) {
                        V newV = v.newInstance();
                        // 把原对象数据拷贝到新的对象
                        BeanUtils.copyProperties(record, newV);
                        list.add(newV);
                    }
                }
                page.setRecords(list);
                page.setTotal(pageInfoPo.getTotal());
                return page;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}