From 18b184bdacebef4786b6a3c5cd327170281e1565 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Fri, 24 Jan 2025 15:03:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/xnzn/constant/LeConstants.java | 27 +++ bonus-modules/bonus-smart-canteen/pom.xml | 5 + .../net/xnzn/core/common/page/PageDTO.java | 174 ++++++++++++++++ .../net/xnzn/core/common/page/PageVO.java | 197 ++++++++++++++++++ 4 files changed, 403 insertions(+) create mode 100644 bonus-common-biz/src/main/java/net/xnzn/constant/LeConstants.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageDTO.java create mode 100644 bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageVO.java diff --git a/bonus-common-biz/src/main/java/net/xnzn/constant/LeConstants.java b/bonus-common-biz/src/main/java/net/xnzn/constant/LeConstants.java new file mode 100644 index 00000000..44a0782d --- /dev/null +++ b/bonus-common-biz/src/main/java/net/xnzn/constant/LeConstants.java @@ -0,0 +1,27 @@ +package net.xnzn.constant; + +public interface LeConstants { + String ID_TEMPORARY_PRE = "xnznkjxnznkj"; + String NUM_PRE = "0"; + Long DATA_DEFAULT_LONG = -1L; + Integer DATA_DEFAULT_INTEGER = -1; + Integer COMMON_YES = 1; + Integer COMMON_NO = 2; + Integer MAX_CARD_NUM = 100000; + Integer MAX_CUST_LIMIT_ID = 65535; + Integer MIN_DATA_NUM = 1; + Integer MAX_CUST_PSN_TYPE = 100; + String DEFAULT_GRADE_NAME = "普通会员"; + String DEFAULT_PSN_TYPE_NAME = "类别"; + String MAPPING_OBJECT = "object"; + String MAPPING_PAGE = "page"; + String MERCHANT_ID = "MERCHANT-ID"; + String MERCHANT_ID_LOW = "merchant-id"; + String OPENID = "openid"; + String SOURCE_TYPE = "source-type"; + String FACE_VER = "face-ver"; + String MACHINE_SN = "machine-sn"; + String MACHINE_NUM = "machine-num"; + String MERCHANT_DEFAULT = "(默认)"; + String DEFAULT_ORG_NUM = "0"; +} diff --git a/bonus-modules/bonus-smart-canteen/pom.xml b/bonus-modules/bonus-smart-canteen/pom.xml index 9e973958..df2217c2 100644 --- a/bonus-modules/bonus-smart-canteen/pom.xml +++ b/bonus-modules/bonus-smart-canteen/pom.xml @@ -123,6 +123,11 @@ alipay-sdk-java 4.34.0.ALL + + com.baomidou + mybatis-plus-extension + 3.5.6 + diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageDTO.java b/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageDTO.java new file mode 100644 index 00000000..b35d6464 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageDTO.java @@ -0,0 +1,174 @@ +package net.xnzn.core.common.page; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.github.pagehelper.page.PageMethod; +import io.swagger.annotations.ApiModelProperty; +import net.xnzn.constant.LeConstants; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +public class PageDTO { + @ApiModelProperty("当前页(默认1)") + private Long current; + @ApiModelProperty("每页显示条数(默认10) -1查询全部") + private Long size; + @ApiModelProperty("是否包含count查询 1是 2否 默认是") + private Integer ifCount; + @ApiModelProperty("size空(-1)时是否查询全部 1是 2否 默认是") + private Integer ifPageSizeZero; + @ApiModelProperty("排序,支持多个(仅支持PageHelper)") + private List orders; + + public Long getCurrent() { + return !ObjectUtil.isNull(this.current) && this.current > 0L ? this.current : 1L; + } + + public Long getSize() { + return !ObjectUtil.isNull(this.size) && this.size != 0L ? this.size : 10L; + } + + public List getOrders() { + return ObjectUtil.isNull(this.orders) ? Collections.emptyList() : this.orders; + } + + @ApiModelProperty( + value = "分页条件", + hidden = true + ) + public String getOrderString() { + return (String)this.getOrders().stream().map(OrderItem::orderString).collect(Collectors.joining(",")); + } + + @ApiModelProperty( + value = "PageHelper使用字段:pageNum", + hidden = true + ) + public int getPageNum() { + return this.getCurrent().intValue(); + } + + @ApiModelProperty( + value = "PageHelper使用字段:pageSize", + hidden = true + ) + public int getPageSize() { + int sizeValue = this.getSize().intValue(); + return sizeValue == -1 ? 0 : sizeValue; + } + + @ApiModelProperty( + value = "PageHelper使用字段:orderBy", + hidden = true + ) + public String getOrderBy() { + return this.getOrderString(); + } + + @ApiModelProperty( + value = "PageHelper使用字段:countSql(是否包含count查询)", + hidden = true + ) + public Boolean getCountSql() { + return LeConstants.COMMON_YES.equals(this.ifCount); + } + + @ApiModelProperty( + value = "PageHelper使用字段:pageSizeZero(size 0是否查询全部)", + hidden = true + ) + public Boolean getPageSizeZero() { + return LeConstants.COMMON_YES.equals(this.ifPageSizeZero); + } + + public void startPage() { + PageMethod.startPage(this); + } + + public static PageDTO of(Long current, Long size) { + PageDTO pageDTO = new PageDTO(); + pageDTO.setCurrent(current); + pageDTO.setSize(size); + return pageDTO; + } + + public static PageDTO countOnly() { + PageDTO pageDTO = new PageDTO(); + pageDTO.setCurrent(1L); + pageDTO.setSize(-1L); + pageDTO.setIfCount(LeConstants.COMMON_YES); + pageDTO.setIfPageSizeZero(LeConstants.COMMON_NO); + return pageDTO; + } + + public static void startPage(PageDTO page) { + if (!Objects.isNull(page)) { + page.startPage(); + } + } + + public PageDTO() { + this.ifCount = LeConstants.COMMON_YES; + this.ifPageSizeZero = LeConstants.COMMON_YES; + } + + public Integer getIfCount() { + return this.ifCount; + } + + public Integer getIfPageSizeZero() { + return this.ifPageSizeZero; + } + + public void setCurrent(final Long current) { + this.current = current; + } + + public void setSize(final Long size) { + this.size = size; + } + + public void setIfCount(final Integer ifCount) { + this.ifCount = ifCount; + } + + public void setIfPageSizeZero(final Integer ifPageSizeZero) { + this.ifPageSizeZero = ifPageSizeZero; + } + + public void setOrders(final List orders) { + this.orders = orders; + } + + public static class OrderItem { + @ApiModelProperty("字段名") + private String column; + @ApiModelProperty("true增序 false降序") + private Boolean asc = true; + + @JsonIgnore + public String orderString() { + String var10000 = StrUtil.toUnderlineCase(this.column); + return var10000 + " " + (this.asc ? "ASC" : "DESC"); + } + + public String getColumn() { + return this.column; + } + + public Boolean getAsc() { + return this.asc; + } + + public void setColumn(final String column) { + this.column = column; + } + + public void setAsc(final Boolean asc) { + this.asc = asc; + } + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageVO.java b/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageVO.java new file mode 100644 index 00000000..ad1d88d2 --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/common/page/PageVO.java @@ -0,0 +1,197 @@ +package net.xnzn.core.common.page; + +import com.github.pagehelper.Page; +import java.util.Collections; +import java.util.List; + +public class PageVO { + protected List records; + protected long total; + protected long size; + protected long current; + protected boolean searchCount; + private String orderBy; + + public PageVO() { + this.records = Collections.emptyList(); + this.total = 0L; + this.size = 10L; + this.current = 1L; + this.searchCount = true; + } + + public PageVO(long current, long size) { + this(current, size, 0L); + } + + public PageVO(long current, long size, long total) { + this(current, size, total, true); + } + + public PageVO(long current, long size, boolean searchCount) { + this(current, size, 0L, searchCount); + } + + public PageVO(long current, long size, long total, boolean searchCount) { + this.records = Collections.emptyList(); + this.total = 0L; + this.size = 10L; + this.current = 1L; + this.searchCount = true; + if (current > 1L) { + this.current = current; + } + + this.size = size; + this.total = total; + this.searchCount = searchCount; + } + + public static PageVO empty() { + return new PageVO(); + } + + public static PageVO of(long current, long size, long total, boolean searchCount) { + return new PageVO(current, size, total, searchCount); + } + + public static PageVO of(long current, long size) { + return of(current, size, 0L); + } + + public static PageVO of(long current, long size, long total) { + return of(current, size, total, true); + } + + public static PageVO of(long current, long size, boolean searchCount) { + return of(current, size, 0L, searchCount); + } + +// public static PageVO of(List page, List records) { +// if (page instanceof Page) { +// PageVO vo = of((long)((Page)page).getPageNum(), (long)((Page)page).getPageSize(), ((Page)page).getTotal(), ((Page)page).isCount()); +// vo.setOrderBy(((Page)page).getOrderBy()); +// vo.setRecords(records); +// return vo; +// } else { +// return of(records); +// } +// } + +// public static PageVO of(List records) { +// PageVO vo = new PageVO(); +// vo.setRecords(records); +// if (records instanceof Page ghRecords) { +// vo.setCurrent((long)ghRecords.getPageNum()).setSize((long)ghRecords.getPageSize()).setTotal(ghRecords.getTotal()).setSearchCount(ghRecords.isCount()).setOrderBy(vo.getOrderBy()); +// } +// +// return vo; +// } + +// public static PageVO of(PageDTO pageDTO, List records) { +// PageVO vo = new PageVO(); +// vo.setRecords(records); +// if (records instanceof Page ghRecords) { +// vo.setCurrent((long)ghRecords.getPageNum()).setSize((long)ghRecords.getPageSize()).setTotal(ghRecords.getTotal()).setSearchCount(ghRecords.isCount()).setOrderBy(vo.getOrderBy()); +// } else if (records != null) { +// vo.setCurrent(pageDTO.getCurrent()).setSize(pageDTO.getSize()).setTotal((long)records.size()).setOrderBy(pageDTO.getOrderBy()); +// } +// +// return vo; +// } + + public static PageVO of(com.baomidou.mybatisplus.extension.plugins.pagination.Page page) { + if (page == null) { + return new PageVO(); + } else { + PageVO vo = of(page.getCurrent(), page.getSize(), page.getTotal(), page.searchCount()); + vo.setRecords(page.getRecords()); + return vo; + } + } + + public static PageVO of(com.baomidou.mybatisplus.extension.plugins.pagination.Page page, List records) { + if (page == null) { + return new PageVO(); + } else { + PageVO vo = of(page.getCurrent(), page.getSize(), page.getTotal(), page.searchCount()); + vo.setRecords(records); + return vo; + } + } + + public boolean hasPrevious() { + return this.current > 1L; + } + + public boolean hasNext() { + return this.current < this.getPages(); + } + + public List getRecords() { + return this.records; + } + + public PageVO setRecords(List records) { + this.records = records; + return this; + } + + public long getTotal() { + return this.total; + } + + public PageVO setTotal(long total) { + this.total = total; + return this; + } + + public long getSize() { + return this.size; + } + + public PageVO setSize(long size) { + this.size = size; + return this; + } + + public long getCurrent() { + return this.current; + } + + public PageVO setCurrent(long current) { + this.current = current; + return this; + } + + public PageVO setSearchCount(boolean searchCount) { + this.searchCount = searchCount; + return this; + } + + public String getOrderBy() { + return this.orderBy; + } + + public PageVO setOrderBy(String orderBy) { + this.orderBy = orderBy; + return this; + } + + public long getPages() { + if (this.getSize() == 0L) { + return 0L; + } else { + long pages = this.getTotal() / this.getSize(); + if (this.getTotal() % this.getSize() != 0L) { + ++pages; + } + + return pages; + } + } + + public boolean searchCount() { + return this.total < 0L ? false : this.searchCount; + } +}