自定义分页

前端表单涉及多个表数据的显示,需要用到自定义分页

import com.github.pagehelper.PageInfo;





   
 @PostMapping(value = "/page")
    @ApiOperation(value = "分页查询列表", httpMethod = "POST", notes = "分页查询列表")
    public BaseResponse<PageInfo<ServiceTypeWebDto>> findPage(@RequestBody PageQueryParameter<ServiceTypeWebDto> param) {
    //查询出需要分页的数据
        List<ServiceTypeWebDto> serviceTypeWebDtos = serviceTypeService.findPage(param);
        PageInfo<ServiceTypeWebDto> pageInfo = new PageInfo<>(serviceTypeWebDtos);
        if (pageInfo.getPageSize() != param.getPageSize()) {
            pageInfo.setPageNum(param.getPageNum());
            pageInfo.setPageSize(param.getPageSize());
            List<ServiceTypeWebDto> resList = PageUtil.getList(serviceTypeWebDtos,       param.getPageNum(), param.getPageSize());
            pageInfo.setList(resList);
        }
        int pages = 0;
        if (!CollectionUtils.isEmpty(serviceTypeWebDtos)) {// 如果非空计算总页数
            pages = serviceTypeWebDtos.size() / param.getPageSize();
            if (serviceTypeWebDtos.size() % param.getPageSize() != 0)
                pages++;
        }
        pageInfo.setPages(pages);
        pageInfo.setIsFirstPage(pageInfo.getPageNum() == 1);
        pageInfo.setIsLastPage(pageInfo.getPageNum() == pages || pageInfo.getPages() == 0);

        return BaseResponse.successWithData(pageInfo);
    }
用到的工具类
import org.apache.commons.collections.CollectionUtils;

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

public class PageUtil<T> {
	public static <T> List<T> getList(List<T> list, int num, int size) {
		int firstNum = getFirstNum(num, size);
		int lastNum = getLastNum(num, size, list.size());
		List<T> newList = new ArrayList<T>();
		if (CollectionUtils.isNotEmpty(list)) {
			if (list.size() <= 10) {
				return list;
			}
			for (int i = firstNum; i < lastNum; i++) {
				newList.add(list.get(i));
			}
		}
		return newList;
	}

	private static int getLastNum(int num, int size, int listSize) {
		if ((num * size) > listSize) {
			return listSize;
		}
		return num * size;
	}

	private static int getFirstNum(int num, int size) {
		if (num < 1) {
			return 0;
		}
		return (num - 1) * size;
	}
}

// 分页 模糊查询 通过代码实现
可以通过 String里的indexof的方法去实现
例如:XXXXName().indexOf(query.getXXXXName()) >= 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值