mirror of
				https://github.com/continew-org/continew-starter.git
				synced 2025-10-31 10:57:15 +08:00 
			
		
		
		
	feat(extension/crud): PageQuery 和 SortQuery 完善带参构造方法
This commit is contained in:
		| @@ -20,6 +20,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | ||||
| import jakarta.validation.constraints.Min; | ||||
| import org.hibernate.validator.constraints.Range; | ||||
| import org.springdoc.core.annotations.ParameterObject; | ||||
| import org.springframework.data.domain.Sort; | ||||
|  | ||||
| import java.io.Serial; | ||||
|  | ||||
| @@ -35,10 +36,12 @@ public class PageQuery extends SortQuery { | ||||
|  | ||||
|     @Serial | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** | ||||
|      * 默认页码:1 | ||||
|      */ | ||||
|     private static final int DEFAULT_PAGE = 1; | ||||
|  | ||||
|     /** | ||||
|      * 默认每页条数:10 | ||||
|      */ | ||||
| @@ -58,6 +61,123 @@ public class PageQuery extends SortQuery { | ||||
|     @Range(min = 1, max = 1000, message = "每页条数(取值范围 {min}-{max})") | ||||
|     private Integer size = DEFAULT_SIZE; | ||||
|  | ||||
|     public PageQuery() { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new PageQuery(1, 10)} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param page 页码 | ||||
|      * @param size 每页条数 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public PageQuery(Integer page, Integer size) { | ||||
|         this.page = page; | ||||
|         this.size = size; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new PageQuery(1, 10, "createTime,desc", "name,asc")} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param page 页码 | ||||
|      * @param size 每页条数 | ||||
|      * @param sort 排序 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public PageQuery(Integer page, Integer size, String... sort) { | ||||
|         super(sort); | ||||
|         this.page = page; | ||||
|         this.size = size; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new PageQuery("createTime,desc", "name,asc")} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param sort 排序 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public PageQuery(String... sort) { | ||||
|         super(sort); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new PageQuery("createTime", Sort.Direction.DESC)} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param field     字段 | ||||
|      * @param direction 排序方向 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public PageQuery(String field, Sort.Direction direction) { | ||||
|         super(field, direction); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new PageQuery(Sort.by(Sort.Direction.DESC, "createTime"))} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param sort 排序 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public PageQuery(Sort sort) { | ||||
|         super(sort); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new PageQuery(1, 10, "createTime", Sort.Direction.DESC)} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param page      页码 | ||||
|      * @param size      每页条数 | ||||
|      * @param field     字段 | ||||
|      * @param direction 排序方向 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public PageQuery(Integer page, Integer size, String field, Sort.Direction direction) { | ||||
|         super(field, direction); | ||||
|         this.page = page; | ||||
|         this.size = size; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new PageQuery(1, 10, Sort.by(Sort.Direction.DESC, "createTime"))} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param page 页码 | ||||
|      * @param size 每页条数 | ||||
|      * @param sort 排序 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public PageQuery(Integer page, Integer size, Sort sort) { | ||||
|         super(sort); | ||||
|         this.page = page; | ||||
|         this.size = size; | ||||
|     } | ||||
|  | ||||
|     public Integer getPage() { | ||||
|         return page; | ||||
|     } | ||||
|   | ||||
| @@ -47,6 +47,58 @@ public class SortQuery implements Serializable { | ||||
|     @Schema(description = "排序条件", example = "createTime,desc") | ||||
|     private String[] sort; | ||||
|  | ||||
|     public SortQuery() { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new SortQuery("createTime,desc", "name,asc")} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param sort 排序条件 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public SortQuery(String... sort) { | ||||
|         this.sort = sort; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new SortQuery("createTime", Sort.Direction.DESC)} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param field     字段 | ||||
|      * @param direction 排序方向 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public SortQuery(String field, Sort.Direction direction) { | ||||
|         this(field + StringConstants.COMMA + direction.name().toLowerCase()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 构造方法 | ||||
|      * | ||||
|      * <p> | ||||
|      * 示例:{@code new SortQuery(Sort.by(Sort.Order.desc("createTime")))} | ||||
|      * </p> | ||||
|      * | ||||
|      * @param sort 排序条件 | ||||
|      * @since 2.12.0 | ||||
|      */ | ||||
|     public SortQuery(Sort sort) { | ||||
|         if (sort == null || sort.isUnsorted()) { | ||||
|             this.sort = null; | ||||
|             return; | ||||
|         } | ||||
|         this.sort = sort.stream() | ||||
|             .map(order -> order.getProperty() + StringConstants.COMMA + order.getDirection().name().toLowerCase()) | ||||
|             .toArray(String[]::new); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 解析排序条件为 Spring 分页排序实体 | ||||
|      * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user