Merge remote-tracking branch 'origin/test'

This commit is contained in:
周敏 2025-01-06 13:37:45 +08:00
commit a0d46ae8e5
4 changed files with 63 additions and 1 deletions

View File

@ -25,4 +25,13 @@ public interface IPageReq {
default List<String> getSort() {
return ImmutableList.of();
}
/**
* 部分分页不需要查询count支持指定是否查询count
*
* @return
*/
default Boolean isSearchCount() {
return true;
}
}

View File

@ -7,11 +7,15 @@ import lombok.NoArgsConstructor;
import java.util.List;
/**
* 如果作为接口调用的参数使用建议使用{@link PageReqV2}支持builder 模式构建参数对参数构造更友好
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageReq implements IPageReq{
@Deprecated
public class PageReq implements IPageReq {
Integer page;
Integer pageSize;
List<String> sort;

View File

@ -0,0 +1,47 @@
package cn.axzo.foundation.page;
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.BooleanUtils;
import java.util.List;
/**
* 默认分页请求基类
* 1支持builder方式构建参数
* 2默认分页大小为1000
* 3支持指定不分页searchCount = false
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class PageReqV2 implements IPageReq {
private static final Integer DEFAULT_PAGE_SIZE_V2 = 1000;
@CriteriaField(ignore = true)
Integer page;
@CriteriaField(ignore = true)
Integer pageSize;
@CriteriaField(ignore = true)
Boolean searchCount;
@CriteriaField(ignore = true)
List<String> sort;
@Override
public Integer getPage() {
return page == null || page < 1 ? 1 : page;
}
@Override
public Integer getPageSize() {
return pageSize == null || pageSize < 1 ? DEFAULT_PAGE_SIZE_V2 : pageSize;
}
public Boolean isSearchCount() {
// 只要不明确指定 searchCount = false都要查count信息
return BooleanUtils.isNotFalse(searchCount);
}
}

View File

@ -7,6 +7,7 @@ import cn.axzo.foundation.util.PageUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import lombok.experimental.UtilityClass;
import org.apache.commons.lang3.BooleanUtils;
import java.util.List;
import java.util.Optional;
@ -34,6 +35,7 @@ public class PageConverter {
= new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(current, pageSize);
List<OrderItem> orderItems = MybatisPlusConverterUtils.convertOrderItems(page.getSort(), entityClz);
myBatisPage.setOrders(orderItems);
myBatisPage.setSearchCount(BooleanUtils.isNotFalse(page.isSearchCount()));
return myBatisPage;
}