update demo

This commit is contained in:
weihu 2023-08-16 10:07:23 +08:00
parent 0c66ff8524
commit 6e09a9bd6c
3 changed files with 192 additions and 1 deletions

View File

@ -39,4 +39,10 @@
"data": "小奏",
"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)
使用

View File

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

View File

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