列表数据组装方法

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:36   1983   0
        @Test
 public void test04() {
  System.out.println(getSubListLimitEnd(6, 2, 10));

 }


 /**
  * 获取子列表的页码
  * @param masterListSize 主列表所有数据的条数
  * @param page 当前页码
  * @param size 当前size
  * @return 子列表当前页码
  */
 public int getSubListPage(int masterListSize, int page, int size) {
  int subPage = 1;
  // 计算相差数量
  int count = page * size - masterListSize;

  if(0 >= count) {
   return 0;
  }

  subPage = (count / size) + (count % size != 0 ? 1 : 0);

  return subPage;
 }

 /**
  * 获取子列表的分页截止点
  * @param masterListSize 主列表所有数据的条数
  * @param page 当前页码
  * @param size 当前size
  * @return 子列表分页截止点
  */
 public int getSubListLimitEnd(int masterListSize, int page, int size) {
  int subSize = size;

  // 计算相差数量
  int count = page * size - masterListSize;

  if (count % size != 0) {
   subSize = (count % size);

   int subPage = getSubListPage(masterListSize, page, size);

   if (subPage > 1) {
    subSize += ((getSubListPage(masterListSize, page, size) - 1)
      * size);
   }

                        if(subSize > size) {
    subSize = size;
   }

   System.out.println("subPage:" + subPage);
   System.out.println("subSizeBegin:" + getSubListLimitBegin(masterListSize, page, size));
   System.out.println("subSizeEnd:" + subSize);

  }

  return subSize;
 }

 /**
  * 获取子列表分页起始点
  * @param masterListSize 主列表所有数据的条数
  * @param page 当前页码
  * @param size 当前size
  * @return 子列表分页起始点
  */
 public int getSubListLimitBegin(int masterListSize, int page, int size) {
  int subSize = size;

  // 计算相差数量
  int count = page * size - masterListSize;

  if (count % size != 0) {
   subSize = (count % size);

   int subPage = getSubListPage(masterListSize, page, size);

   if (subPage > 1) {
    subSize += ((getSubListPage(masterListSize, page, size) - 1)
      * size);

    subSize -= (subPage - 1) * size;
   }

   if(subPage == 1) {
    subSize = 0;
   }
  }

  return subSize;
 }

这种一般用于在,有一个列表,他本来有返回数据,当他返回数据不足够你所设置的size时,计算出另一个子列表的查询SQL LIMIT 的两个值,补全第一个列表。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP