bladex中自定义分页的写法~

bladex中自定义分页的写法~_第1张图片

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂

前言

现在是2022年4月16日21:44:05!今天分享一个代码段,个人觉得还是比较有参考性的。

  1. 后端使用框架:bladex

  2. 前端使用技术:AVue

  3. 功能:自定义分页

  4. 实现思路:由于业务上涉及到了多个表进行关联查询,所有直接使用框架自带的分页无法满足前端分页,所以就想着自己封装一个吧,现在记录记录,等后面自己用到的时候回来看看,也希望能帮助其他人。

实现代码

整体思路是这样的:

  • 查询当前用户下的所有应用

  • 查询每个应用下的所有设备

  • 将查询出来的设备信息封装在分页工具类中

  • 给前端传回去分页对象

比较麻烦的地方就在于,计算当前页以及将当前页的信息放在集合中传出去,下面是实现代码:

/**
  * 分页 设备流程表
  */
 @GetMapping("/list")
 @ApiOperationSupport(order = 2)
 @ApiOperation(value = "分页", notes = "传入equipment")
 public R> list(Equipment equipment, Query query) {

  //获取当前用户应用
  Application application = new Application();
  application.setUserId(AuthUtil.getUserId());
  List appList = applicationService.list(Condition.getQueryWrapper(application).select("app_id"));
  List equipmentList = new ArrayList<>();

  for(Application app : appList){
   QueryWrapper equipmentQueryWrapper = new QueryWrapper<>();
   equipmentQueryWrapper.eq("application_id",app.getAppId());
   List eList = equipmentService.list(equipmentQueryWrapper);
   for(Equipment e : eList){
    equipmentList.add(e);
   }
  }
  //新的集合
  List equipmentListNew = new ArrayList<>();
  //当前页
  //如果是第一页,0-10
  //第二页,11-20
  Integer current = (query.getCurrent()-1)*query.getSize();
  //页大小
  Integer pageSize = query.getSize();
  if(equipmentList.size()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 pages =new Page<>();
  pages.setRecords(equipmentListNew);
  pages.setSize(query.getSize());
  pages.setCurrent(query.getCurrent());
  pages.setTotal(equipmentList.size());


  return R.data(pages);
 }

bladex中自定义分页的写法~_第2张图片

bladex中自定义分页的写法~_第3张图片

你可能感兴趣的:(java,python,spring,android,数据库)