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);
 }

目录
相关文章
|
2月前
|
前端开发
bladex自定义分页
bladex自定义分页
21 0
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
原生php实现列表接口+分页接口+排序接口组合使用+包括测试数据(不加任何封装)
|
4月前
PageHelper分页插件拼接动态排序语句
PageHelper分页插件拼接动态排序语句
|
18天前
|
JavaScript 前端开发
【vue】设计一个表格,增删改查,分页,固定列,特殊字符校验
【vue】设计一个表格,增删改查,分页,固定列,特殊字符校验
15 0
【vue】设计一个表格,增删改查,分页,固定列,特殊字符校验
|
8月前
|
算法 JavaScript Java
通用分页【下】(将分页封装成标签)
调试()是指在软件开发过程中,通过识别、定位和解决程序错误或问题的过程。调试的目的是找出代码中的错误、异常或不正常的行为,并修复它们,以确保程序能够按照预期的方式运行。调试是一个重要的开发技巧,可以帮助开发人员理解程序的执行过程、找出错误的原因,并从中学习和改进。调试可以使用不同的工具和技术来辅助,例如打印输出、日志记录、调试器(debugger)等。调试是开发过程中不可或缺的一部分,可以帮助开发人员提高代码质量、加快解决问题的速度,并优化程序的性能和可靠性。
|
8月前
|
SQL 存储 数据库连接
自定义通用分页标签一行代码完成分页效果(内含源码)(上)
自定义通用分页标签一行代码完成分页效果(内含源码)
24 0
|
8月前
|
Java 数据处理 计算机视觉
自定义通用分页标签一行代码完成分页效果(内含源码)(下)
自定义通用分页标签一行代码完成分页效果(内含源码)(下)
24 0
|
10月前
Vue3手写分页在分页的基础上用到Pagination 分页组件
Vue3手写分页在分页的基础上用到Pagination 分页组件
55 0
list自定义参数分页
list自定义参数分页
65 0
|
算法 数据库 内存技术
【视频】自然框架之分页控件的使用方法(一) PostBack方式的一般分页方式
前言:分页控件的优点   1、 按需所取 —— 需要几条记录就从数据库里提取几条记录,不会多取。 2、 使用简单 —— 设置几个属性就可以实现分页的功能。 3、 多种分页算法 —— (即分页用的SQL语句)可以根据不同的需求灵活选择 4、 支持多种数据库 —— 用不同的分页算法对应不同的数据库。
1089 0