bladex中自定义分页的写法~
Posted 穆雄雄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bladex中自定义分页的写法~相关的知识,希望对你有一定的参考价值。
“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂
”
前言
现在是2022年4月16日21:44:05!今天分享一个代码段,个人觉得还是比较有参考性的。
后端使用框架:bladex
前端使用技术:AVue
功能:自定义分页
实现思路:由于业务上涉及到了多个表进行关联查询,所有直接使用框架自带的分页无法满足前端分页,所以就想着自己封装一个吧,现在记录记录,等后面自己用到的时候回来看看,也希望能帮助其他人。
实现代码
整体思路是这样的:
查询当前用户下的所有应用
查询每个应用下的所有设备
将查询出来的设备信息封装在分页工具类中
给前端传回去分页对象
比较麻烦的地方就在于,计算当前页以及将当前页的信息放在集合中传出去,下面是实现代码:
/**
* 分页 设备流程表
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入equipment")
public R<IPage<Equipment>> list(Equipment equipment, Query query)
//获取当前用户应用
Application application = new Application();
application.setUserId(AuthUtil.getUserId());
List<Application> appList = applicationService.list(Condition.getQueryWrapper(application).select("app_id"));
List<Equipment> equipmentList = new ArrayList<>();
for(Application app : appList)
QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
equipmentQueryWrapper.eq("application_id",app.getAppId());
List<Equipment> eList = equipmentService.list(equipmentQueryWrapper);
for(Equipment e : eList)
equipmentList.add(e);
//新的集合
List<Equipment> equipmentListNew = new ArrayList<>();
//当前页
//如果是第一页,0-10
//第二页,11-20
Integer current = (query.getCurrent()-1)*query.getSize();
//页大小
Integer pageSize = query.getSize();
if(equipmentList.size()<pageSize)
pageSize = equipmentList.size();
else if(query.getCurrent()>1)
if (equipmentList.size() % query.getSize() != 0)
pageSize = (pageSize * (query.getCurrent() - 1)) + (equipmentList.size() % query.getSize());
else
pageSize = pageSize * query.getCurrent();
for(int i = current;i<pageSize;i++)
equipmentListNew.add(equipmentList.get(i));
IPage<Equipment> pages =new Page<>();
pages.setRecords(equipmentListNew);
pages.setSize(query.getSize());
pages.setCurrent(query.getCurrent());
pages.setTotal(equipmentList.size());
return R.data(pages);
以上是关于bladex中自定义分页的写法~的主要内容,如果未能解决你的问题,请参考以下文章