若依分页list数据(对list数据进行分页而不是对sql语句进行分页)

       在实际开发中,我们三⽅接⼝获取数据,并没有分页,⽽是⼀个JSON数据或者就是⼀个list集合,但是我们要将数据进⾏分页并整合到若依系统中,这篇博客主要是解决这个问题。
      在若依系统上⾯进⾏修改只是修改后端部分代码即可,前端任然使⽤若依原代码。

⼀、若依原系统分页主要代码⽰例

ClubController层

@PostMapping("/clubTimelineList")
	@ResponseBody
	public TableDataInfo searchPostList(ClubTimeline clubTimeline) {
		Page page = startPage();
		List<ClubTimelineDTO> list = myClubService.searchPostByClubId(clubTimeline);
		TableDataInfo tableDataInfo = getDataTable(list);
		if (null != page) {
			tableDataInfo.setTotal(page.getTotal());
		}
		return tableDataInfo;
	}

开启分页 

/**
     * 设置请求分页数据
     */
    protected Page startPage() {
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();
        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
            return PageHelper.startPage(pageNum, pageSize, orderBy);
        }
        return null;
    }

 分页数据

/**
     * 响应请求分页数据
     */
    @SuppressWarnings({"rawtypes", "unchecked"})
    protected TableDataInfo getDataTable(List<?> list) {
        TableDataInfo rspData = new TableDataInfo();
        rspData.setCode(0);
        rspData.setRows(list);
        rspData.setTotal(new PageInfo(list).getTotal());
        return rspData;
    }

二、修改

 ClubController层

@PostMapping("/clubTimelineList")
	@ResponseBody
	public TableDataInfo searchPostList(ClubTimeline clubTimeline) {
                List<PunishmentRecord> list= userPunishExtService.listPunishmentRecordByUserId(user.getUserId());
		PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();
        TableDataInfo rspData =new TableDataInfo();
        rspData.setCode(0);
        rspData.setRows(myStartPage(list, pageNum, pageSize));
        rspData.setTotal(new PageInfo(list).getTotal());
        return rspData;
	}

开启分页 

public static List myStartPage(List list, Integer pageNum, Integer pageSize){
        if(list ==null){
            return null;
        }
        if(list.size()==0){
            return null;
        }
        Integer count = list.size();//
        Integer pageCount =0;//
        if(count % pageSize ==0){
            pageCount = count / pageSize;
        }else{
            pageCount = count / pageSize +1;
        }
        int fromIndex =0;//
        int toIndex =0;//
        if(pageNum != pageCount){
            fromIndex =(pageNum -1)* pageSize;
            toIndex = fromIndex + pageSize;
        }else{
            fromIndex =(pageNum -1)* pageSize;
            toIndex = count;
        }
        List pageList = list.subList(fromIndex,toIndex);
        return pageList;
    }

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿彬在上路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值