MYBATIS PLUS 分页工具类



import com.baomidou.mybatisplus.plugins.Page;
import com.sun.collierycommon.domain.PageParamDTO;
import com.sun.collierycommon.domain.PageResultDTO;

import java.util.List;

/**
 * @Description:分页工具类
 * @Author: sunboqiang
 * @Company: 洛阳图联科技有限公司
 * @Date: 2019/10/31 9:13
 */
public class SmartPaginationUtil {

    public static <T> PageResultDTO<T> convert2PageInfoDTO(Page<T> page) {
        PageResultDTO<T> result = new PageResultDTO<>();
        result.setPageNum(page.getCurrent());
        result.setPageSize(page.getSize());
        result.setTotal(Long.valueOf(page.getTotal()));
        result.setPages(page.getPages());
        result.setList(page.getRecords());
        return result;
    }

    public static <T> Page<T> convert2PageQueryInfo(PageParamDTO baseDTO) {
        Page<T> page = new Page<>();
        Boolean sort = baseDTO.getSort();
        if (null != sort) {
            page.setAsc(sort);
        }
        if (null != baseDTO.getSortField()){
            page.setOrderByField(baseDTO.getSortField());
        }
        page.setCurrent(baseDTO.getPageNum());
        page.setSize(baseDTO.getPageSize());
        if (null != baseDTO.getSearchCount()) {
            page.setSearchCount(baseDTO.getSearchCount());
        }
        return page;
    }

    /**
     * @Description:转换为 PageResultDTO 对象
     * @Author: sunboqiang
     * @Date: 2019/10/31 9:40
     */
    public static <T, E> PageResultDTO<T> convert2PageInfoDTO(Page page, List<E> sourceList, Class<T> targetClazz) {
        PageResultDTO pageResultDTO = setPage(page);
        List<T> records = SmartBeanUtil.copyList(sourceList, targetClazz);
        page.setRecords(records);
        pageResultDTO.setList(records);
        return pageResultDTO;
    }

    /**
     * 转换为 PageResultDTO 对象
     */
    public static <T, E> PageResultDTO<T> convert2PageInfoDTO(Page page, List<E> sourceList) {
        PageResultDTO pageResultDTO = setPage(page);
        page.setRecords(sourceList);
        pageResultDTO.setList(sourceList);
        return pageResultDTO;
    }

    private static PageResultDTO setPage(Page page) {
        PageResultDTO pageResultDTO = new PageResultDTO();
        pageResultDTO.setPageNum(page.getCurrent());
        pageResultDTO.setPageSize(page.getSize());
        pageResultDTO.setTotal(Long.valueOf(page.getTotal()));
        pageResultDTO.setPages(page.getPages());
        return pageResultDTO;
    }
}

serve层中分页方法的使用

	public ResponseDTO<PageResultDTO<ProductionDigProgressListVO>> list(ProductionDigProgressParamDTO param,SystemUserVo userVo){
		Page page= SmartPaginationUtil.convert2PageQueryInfo(param);
		EntityWrapper<ProductionDigProgressEntity> wrapper=  new EntityWrapper<>();
		wrapper.eq("deleted", DeletedEnum.NO_DELETED.getValue());
		wrapper.eq("company_id", userVo.getCompanyId());
		wrapper.like(StringUtils.isNotBlank(param.getName()),"name",param.getName());
		wrapper.like(StringUtils.isNotBlank(param.getTeamName()),"team_name",param.getTeamName());
		List<ProductionDigProgressListVO> pageList= Lists.newArrayList();
		List<ProductionDigProgressEntity> list= productionDigProgressDao.selectPage(page,wrapper);
		if(CollectionUtils.isNotEmpty(list)){
			pageList=SmartBeanUtil.copyList(list,ProductionDigProgressListVO.class);
		}
		return ResponseDTO.succData(SmartPaginationUtil.convert2PageInfoDTO(page,pageList));
	}

猜你喜欢

转载自blog.csdn.net/weixin_40986713/article/details/107636129