update demo
This commit is contained in:
parent
0c66ff8524
commit
6e09a9bd6c
|
@ -39,4 +39,10 @@
|
||||||
"data": "小奏",
|
"data": "小奏",
|
||||||
"msg": "success"
|
"msg": "success"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 提供开箱即用的分页对象
|
||||||
|
- [NebulaPage.java](spring-boot-nebula-web%2Fsrc%2Fmain%2Fjava%2Fcom%2Fnebula%2Fweb%2Fboot%2Fapi%2FNebulaPage.java)
|
||||||
|
- [NebulaPageQuery.java](spring-boot-nebula-web%2Fsrc%2Fmain%2Fjava%2Fcom%2Fnebula%2Fweb%2Fboot%2Fapi%2FNebulaPageQuery.java)
|
||||||
|
|
||||||
|
使用
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
package com.nebula.web.boot.api;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : wh
|
||||||
|
* @date : 2023/8/16 10:02
|
||||||
|
* @description: 基础分页对象
|
||||||
|
*/
|
||||||
|
public class NebulaPage<T> {
|
||||||
|
|
||||||
|
private long totalCount = 0;
|
||||||
|
|
||||||
|
private int pageSize = 1;
|
||||||
|
|
||||||
|
private Collection<T> list;
|
||||||
|
|
||||||
|
public long getTotalCount() {
|
||||||
|
return totalCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalCount(long totalCount) {
|
||||||
|
this.totalCount = totalCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPageSize() {
|
||||||
|
if (pageSize < 1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageSize(int pageSize) {
|
||||||
|
if (pageSize < 1) {
|
||||||
|
this.pageSize = 1;
|
||||||
|
} else {
|
||||||
|
this.pageSize = pageSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Collection<T> getList() {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setList(Collection<T> list) {
|
||||||
|
this.list = list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造器
|
||||||
|
*
|
||||||
|
* @param list
|
||||||
|
* @param total
|
||||||
|
* @param pageSize
|
||||||
|
* @param <T>
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static <T> NebulaPage<T> of(Collection<T> list, long total, int pageSize) {
|
||||||
|
NebulaPage<T> page = new NebulaPage<>();
|
||||||
|
page.setList(list);
|
||||||
|
page.setTotalCount(total);
|
||||||
|
page.setPageSize(pageSize);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内存分页
|
||||||
|
*
|
||||||
|
* @param list
|
||||||
|
* @param pageQuery
|
||||||
|
* @param <T>
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static <T> NebulaPage<T> ofMemory(Collection<T> list, NebulaPageQuery pageQuery) {
|
||||||
|
List<T> pageList = list.stream().skip((long) (pageQuery.getPageIndex() - 1) * pageQuery.getPageSize())
|
||||||
|
.limit(pageQuery.getPageSize()).collect(Collectors.toList());
|
||||||
|
NebulaPage<T> page = new NebulaPage<>();
|
||||||
|
page.setList(pageList);
|
||||||
|
page.setTotalCount(list.size());
|
||||||
|
page.setPageSize(pageQuery.getPageSize());
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T, R> NebulaPage<R> copy(NebulaPage<T> source, Function<T, R> converterFunction) {
|
||||||
|
NebulaPage<R> Page = new NebulaPage<>();
|
||||||
|
Page.setList(source.getList().stream().map(converterFunction).collect(Collectors.toList()));
|
||||||
|
Page.setTotalCount(source.getTotalCount());
|
||||||
|
Page.setPageSize(source.getPageSize());
|
||||||
|
return Page;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,90 @@
|
||||||
|
package com.nebula.web.boot.api;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : wh
|
||||||
|
* @date : 2023/8/16 10:04
|
||||||
|
* @description:
|
||||||
|
*/
|
||||||
|
public abstract class NebulaPageQuery {
|
||||||
|
|
||||||
|
public static final String ASC = "ASC";
|
||||||
|
|
||||||
|
public static final String DESC = "DESC";
|
||||||
|
|
||||||
|
private static final int DEFAULT_PAGE_SIZE = 20;
|
||||||
|
|
||||||
|
private Integer pageSize = DEFAULT_PAGE_SIZE;
|
||||||
|
|
||||||
|
private Integer pageIndex = 1;
|
||||||
|
|
||||||
|
private String orderBy;
|
||||||
|
|
||||||
|
private String orderDirection = DESC;
|
||||||
|
|
||||||
|
private String groupBy;
|
||||||
|
|
||||||
|
private boolean needTotalCount = true;
|
||||||
|
|
||||||
|
public int getPageIndex() {
|
||||||
|
if (pageIndex < 1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return pageIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageIndex(int pageIndex) {
|
||||||
|
this.pageIndex = pageIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPageSize() {
|
||||||
|
if (pageSize < 1) {
|
||||||
|
pageSize = DEFAULT_PAGE_SIZE;
|
||||||
|
}
|
||||||
|
return pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageSize(int pageSize) {
|
||||||
|
if (pageSize < 1) {
|
||||||
|
pageSize = DEFAULT_PAGE_SIZE;
|
||||||
|
}
|
||||||
|
this.pageSize = pageSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOffset() {
|
||||||
|
return (getPageIndex() - 1) * getPageSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrderBy() {
|
||||||
|
return orderBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderBy(String orderBy) {
|
||||||
|
this.orderBy = orderBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrderDirection() {
|
||||||
|
return orderDirection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderDirection(String orderDirection) {
|
||||||
|
if (ASC.equalsIgnoreCase(orderDirection) || DESC.equalsIgnoreCase(orderDirection)) {
|
||||||
|
this.orderDirection = orderDirection;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGroupBy() {
|
||||||
|
return groupBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGroupBy(String groupBy) {
|
||||||
|
this.groupBy = groupBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNeedTotalCount() {
|
||||||
|
return needTotalCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNeedTotalCount(boolean needTotalCount) {
|
||||||
|
this.needTotalCount = needTotalCount;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue