列表数据组装方法

        @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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值