bladex自定义分页

简介: bladex自定义分页


前言

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

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

实现代码

整体思路是这样的:

  • 查询当前用户下的所有应用
  • 查询每个应用下的所有设备
  • 将查询出来的设备信息封装在分页工具类中
  • 给前端传回去分页对象

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

/**
   * 分页 设备流程表
   */
  @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);
  }
  pages.setTotal(equipmentList.size());
    return R.data(pages);
  }

目录
相关文章
|
1月前
|
前端开发
bladex中自定义分页的写法~
bladex中自定义分页的写法~
18 0
|
7月前
|
算法 JavaScript Java
通用分页【下】(将分页封装成标签)
调试()是指在软件开发过程中,通过识别、定位和解决程序错误或问题的过程。调试的目的是找出代码中的错误、异常或不正常的行为,并修复它们,以确保程序能够按照预期的方式运行。调试是一个重要的开发技巧,可以帮助开发人员理解程序的执行过程、找出错误的原因,并从中学习和改进。调试可以使用不同的工具和技术来辅助,例如打印输出、日志记录、调试器(debugger)等。调试是开发过程中不可或缺的一部分,可以帮助开发人员提高代码质量、加快解决问题的速度,并优化程序的性能和可靠性。
|
9月前
|
SQL Oracle 关系型数据库
什么是分页?如何使用分页?(一)
什么是分页?如何使用分页?
114 0
|
5月前
带分页的标签
带分页的标签
18 0
|
9月前
|
SQL 存储 关系型数据库
什么是分页?如何使用分页?(二)
什么是分页?如何使用分页?
52 0
list自定义参数分页
list自定义参数分页
65 0
|
SQL 前端开发 数据库
列表分页接口有哪些方案,你知道吗?
列表分页接口有哪些方案,你知道吗?
286 0
列表分页接口有哪些方案,你知道吗?
|
数据库
分页控件的使用能不能再简单一点呢,能不能一个页面搞定所有的列表需求?
目的: 1、一个页面(DataList.aspx)可以显示多个模块的列表功能。      一般是有一个列表需求就需要一个aspx文件,如果有100个列表,那么就会有100个aspx文件,这么多的文件(包括.aspx.cs文件)里面的内容基本是一样的,这样写起来麻烦,管理起来也不容易,命名就是一个比较头痛的问题。
1041 0
|
SQL
分页解决方案 之 QuickPager的使用方法(PostBack分页、自定义获取数据)
        适用范围:网站后台管理、OA、CRM、CMS等,从关系型数据库里提取数据,或者XML等获取数据,不愿意使用Pager_SQL、DataAccessLibrary的情况。       优点:可以使用自己喜欢的方式获取数据,不仅仅限于关系型数据库,其他的也都可以。
830 0
|
前端开发 数据库 Python
分页功能的实现
直接上代码吧: 基础版 import math class Page: def __init__(self, total_num, page_num, every_page_num=10, show_page_num=9): ...
867 0