From 569512fb5609ec20d575a37b7cc915ac8df78f40 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 17 Mar 2023 00:06:44 +0800 Subject: [PATCH] fix code --- .../cn/hutool/core/collection/ListUtil.java | 2 +- .../{math => lang/page}/NavigatePageInfo.java | 36 +++++++++----- .../core/{math => lang/page}/PageInfo.java | 14 ++++-- .../hutool/core/lang/page/package-info.java | 10 ++++ .../hutool/core/collection/ListUtilTest.java | 2 +- .../core/lang/page/NavigatePageInfoTest.java | 37 ++++++++++++++ .../{math => lang/page}/PageInfoTest.java | 2 +- .../cn/hutool/core/tree/IssueI6NR2ZTest.java | 48 +++++++++++++++++++ .../src/main/java/cn/hutool/db/Page.java | 2 +- .../main/java/cn/hutool/db/PageResult.java | 2 +- 10 files changed, 134 insertions(+), 21 deletions(-) rename hutool-core/src/main/java/cn/hutool/core/{math => lang/page}/NavigatePageInfo.java (63%) rename hutool-core/src/main/java/cn/hutool/core/{math => lang/page}/PageInfo.java (89%) create mode 100644 hutool-core/src/main/java/cn/hutool/core/lang/page/package-info.java create mode 100644 hutool-core/src/test/java/cn/hutool/core/lang/page/NavigatePageInfoTest.java rename hutool-core/src/test/java/cn/hutool/core/{math => lang/page}/PageInfoTest.java (96%) create mode 100644 hutool-core/src/test/java/cn/hutool/core/tree/IssueI6NR2ZTest.java diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java index d05b98999..cfdca2ada 100755 --- a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java @@ -8,7 +8,7 @@ import cn.hutool.core.collection.partition.RandomAccessPartition; import cn.hutool.core.comparator.PinyinComparator; import cn.hutool.core.comparator.PropertyComparator; import cn.hutool.core.lang.Assert; -import cn.hutool.core.math.PageInfo; +import cn.hutool.core.lang.page.PageInfo; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjUtil; diff --git a/hutool-core/src/main/java/cn/hutool/core/math/NavigatePageInfo.java b/hutool-core/src/main/java/cn/hutool/core/lang/page/NavigatePageInfo.java similarity index 63% rename from hutool-core/src/main/java/cn/hutool/core/math/NavigatePageInfo.java rename to hutool-core/src/main/java/cn/hutool/core/lang/page/NavigatePageInfo.java index cee14bc65..d605be398 100644 --- a/hutool-core/src/main/java/cn/hutool/core/math/NavigatePageInfo.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/page/NavigatePageInfo.java @@ -1,12 +1,13 @@ -package cn.hutool.core.math; +package cn.hutool.core.lang.page; -public class NavigatePageInfo extends PageInfo{ +public class NavigatePageInfo extends PageInfo { - private final int navigatePages = 8; //导航页码数 + private final int navigatePages; //导航页码数 private int[] navigatePageNumbers; //所有导航页号 - public NavigatePageInfo(final int total, final int pageSize) { + public NavigatePageInfo(final int total, final int pageSize, int navigatePages) { super(total, pageSize); + this.navigatePages = navigatePages; //基本参数设定之后进行导航页面的计算 calcNavigatePageNumbers(); @@ -22,17 +23,30 @@ public class NavigatePageInfo extends PageInfo{ } public String toString() { - final StringBuilder str = new StringBuilder(super.toString()); - str.append(", {navigatePageNumbers="); - final int len = navigatePageNumbers.length; - if (len > 0) str.append(navigatePageNumbers[0]); - for (int i = 1; i < len; i++) { - str.append(" ").append(navigatePageNumbers[i]); + final StringBuilder str = new StringBuilder(); + + if(false == isFirstPage()){ + str.append("<< "); + } + if (navigatePageNumbers.length > 0) { + str.append(wrap(navigatePageNumbers[0])); + } + for (int i = 1; i < navigatePageNumbers.length; i++) { + str.append(" ").append(wrap(navigatePageNumbers[i])); + } + if(false == isLastPage()){ + str.append(" >>"); } - str.append("}"); return str.toString(); } + private String wrap(final int pageNumber){ + if(this.pageNo == pageNumber){ + return "[" + pageNumber + "]"; + } + return String.valueOf(pageNumber); + } + /** * 计算导航页 */ diff --git a/hutool-core/src/main/java/cn/hutool/core/math/PageInfo.java b/hutool-core/src/main/java/cn/hutool/core/lang/page/PageInfo.java similarity index 89% rename from hutool-core/src/main/java/cn/hutool/core/math/PageInfo.java rename to hutool-core/src/main/java/cn/hutool/core/lang/page/PageInfo.java index a84079fff..461d1f87e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/math/PageInfo.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/page/PageInfo.java @@ -1,4 +1,4 @@ -package cn.hutool.core.math; +package cn.hutool.core.lang.page; import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.DefaultSegment; @@ -227,7 +227,8 @@ public class PageInfo { /** * 设置首页编号,即以数字几为第一页标志
- * 如设置0,则0表示第一页,1表示第二页 + * 如设置0,则0表示第一页,1表示第二页
+ * 设置此参数后,须调用{@link #setPageNo(int)} 重新设置当前页的页码 * * @param firstPageNo 首页编号 * @return this @@ -238,7 +239,9 @@ public class PageInfo { } /** - * 设置当前页码 + * 设置当前页码,具体这个页码代表实际页,取决于{@link #setFirstPageNo(int)}设置的值。 + * 例如当{@link #setFirstPageNo(int)}设置为1时,1表示首页;设置为0时,0表示首页,依次类推。
+ * 当设置页码小于{@link #getFirstPageNo()}值时,始终为{@link #getFirstPageNo()} * * @param pageNo 当前页码 * @return this @@ -251,7 +254,8 @@ public class PageInfo { } /** - * 下一页,即当前页码+1 + * 下一页,即当前页码+1
+ * 当超过末页时,此方法指向的页码值始终为{@link #getPages()} + 1,即最后一页后的空白页。 * * @return this */ @@ -264,7 +268,7 @@ public class PageInfo { * * @return this */ - public PageInfo PreviousPage() { + public PageInfo previousPage() { return setPageNo(this.pageNo - 1); } diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/page/package-info.java b/hutool-core/src/main/java/cn/hutool/core/lang/page/package-info.java new file mode 100644 index 000000000..66d7723fe --- /dev/null +++ b/hutool-core/src/main/java/cn/hutool/core/lang/page/package-info.java @@ -0,0 +1,10 @@ +/** + * 提供分页信息封装,主要包括: + * + * + * @author looly + */ +package cn.hutool.core.lang.page; diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java index e4e40d0ac..d54714b4b 100644 --- a/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java @@ -2,7 +2,7 @@ package cn.hutool.core.collection; import cn.hutool.core.date.StopWatch; import cn.hutool.core.lang.Console; -import cn.hutool.core.math.PageInfo; +import cn.hutool.core.lang.page.PageInfo; import cn.hutool.core.util.RandomUtil; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/page/NavigatePageInfoTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/page/NavigatePageInfoTest.java new file mode 100644 index 000000000..775d6daf0 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/lang/page/NavigatePageInfoTest.java @@ -0,0 +1,37 @@ +package cn.hutool.core.lang.page; + +import org.junit.Assert; +import org.junit.Test; + +public class NavigatePageInfoTest { + + @Test + public void naviTest1(){ + // 首页 + final NavigatePageInfo navigatePageInfo = new NavigatePageInfo(10, 2, 6); + Assert.assertEquals("[1] 2 3 4 5 >>", navigatePageInfo.toString()); + + // 中间页 + navigatePageInfo.nextPage(); + Assert.assertEquals("<< 1 [2] 3 4 5 >>", navigatePageInfo.toString()); + + // 尾页 + navigatePageInfo.setPageNo(5); + Assert.assertEquals("<< 1 2 3 4 [5]", navigatePageInfo.toString()); + } + + @Test + public void naviTest2(){ + // 首页 + final NavigatePageInfo navigatePageInfo = new NavigatePageInfo(10, 2, 4); + Assert.assertEquals("[1] 2 3 4 >>", navigatePageInfo.toString()); + + // 中间页 + navigatePageInfo.nextPage(); + Assert.assertEquals("<< 1 [2] 3 4 >>", navigatePageInfo.toString()); + + // 尾页 + navigatePageInfo.setPageNo(5); + Assert.assertEquals("<< 2 3 4 [5]", navigatePageInfo.toString()); + } +} diff --git a/hutool-core/src/test/java/cn/hutool/core/math/PageInfoTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/page/PageInfoTest.java similarity index 96% rename from hutool-core/src/test/java/cn/hutool/core/math/PageInfoTest.java rename to hutool-core/src/test/java/cn/hutool/core/lang/page/PageInfoTest.java index a5778a98f..eca662cca 100644 --- a/hutool-core/src/test/java/cn/hutool/core/math/PageInfoTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/lang/page/PageInfoTest.java @@ -1,4 +1,4 @@ -package cn.hutool.core.math; +package cn.hutool.core.lang.page; import org.junit.Assert; import org.junit.Test; diff --git a/hutool-core/src/test/java/cn/hutool/core/tree/IssueI6NR2ZTest.java b/hutool-core/src/test/java/cn/hutool/core/tree/IssueI6NR2ZTest.java new file mode 100644 index 000000000..3acbcea4b --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/tree/IssueI6NR2ZTest.java @@ -0,0 +1,48 @@ +package cn.hutool.core.tree; + +import cn.hutool.core.lang.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +public class IssueI6NR2ZTest { + @Test + public void getNodeTest() { + final List> list = new ArrayList<>(); + + final TreeNode treeNode1 = new TreeNode<>(); + treeNode1.setId(1); + treeNode1.setParentId(0); + list.add(treeNode1); + + final TreeNode treeNode2 = new TreeNode<>(); + treeNode2.setId(2); + treeNode2.setParentId(1); + list.add(treeNode2); + + final TreeNode treeNode3 = new TreeNode<>(); + treeNode3.setId(3); + treeNode3.setParentId(1); + list.add(treeNode3); + + final TreeNode treeNode4 = new TreeNode<>(); + treeNode4.setId(21); + treeNode4.setParentId(2); + list.add(treeNode4); + + final TreeNode treeNode5 = new TreeNode<>(); + treeNode5.setId(31); + treeNode5.setParentId(3); + list.add(treeNode5); + + final TreeNode treeNode6 = new TreeNode<>(); + treeNode6.setId(211); + treeNode6.setParentId(21); + list.add(treeNode6); + + final List> build = TreeUtil.build(list); + final MapTree node = TreeUtil.getNode(build.get(0), 31); + Assert.notNull(node); + } +} diff --git a/hutool-db/src/main/java/cn/hutool/db/Page.java b/hutool-db/src/main/java/cn/hutool/db/Page.java index 176d7f42d..b5c7b877c 100644 --- a/hutool-db/src/main/java/cn/hutool/db/Page.java +++ b/hutool-db/src/main/java/cn/hutool/db/Page.java @@ -1,7 +1,7 @@ package cn.hutool.db; import cn.hutool.core.lang.Segment; -import cn.hutool.core.math.PageInfo; +import cn.hutool.core.lang.page.PageInfo; import cn.hutool.core.util.ArrayUtil; import cn.hutool.db.sql.Order; diff --git a/hutool-db/src/main/java/cn/hutool/db/PageResult.java b/hutool-db/src/main/java/cn/hutool/db/PageResult.java index 70118f2a6..c495f650e 100644 --- a/hutool-db/src/main/java/cn/hutool/db/PageResult.java +++ b/hutool-db/src/main/java/cn/hutool/db/PageResult.java @@ -1,6 +1,6 @@ package cn.hutool.db; -import cn.hutool.core.math.PageInfo; +import cn.hutool.core.lang.page.PageInfo; import java.util.ArrayList;