v1.4.7 release (^.^)YYa!!

This commit is contained in:
开源海哥 2023-07-07 11:58:18 +08:00
parent 55f424e31e
commit 21fd37bf0b

View File

@ -843,6 +843,11 @@ public interface BaseMapper<T> {
return paginate(page, queryWrapper); return paginate(page, queryWrapper);
} }
default Page<T> paginateWithRelations(int pageNumber, int pageSize, QueryWrapper queryWrapper) {
Page<T> page = new Page<>(pageNumber, pageSize);
return paginateWithRelations(page, queryWrapper);
}
/** /**
* 根据条件分页查询 * 根据条件分页查询
@ -857,6 +862,11 @@ public interface BaseMapper<T> {
return paginate(page, new QueryWrapper().where(condition)); return paginate(page, new QueryWrapper().where(condition));
} }
default Page<T> paginateWithRelations(int pageNumber, int pageSize, QueryCondition condition) {
Page<T> page = new Page<>(pageNumber, pageSize);
return paginateWithRelations(page, new QueryWrapper().where(condition));
}
/** /**
* 分页查询 * 分页查询
* *
@ -871,6 +881,11 @@ public interface BaseMapper<T> {
return paginate(page, queryWrapper); return paginate(page, queryWrapper);
} }
default Page<T> paginateWithRelations(int pageNumber, int pageSize, int totalRow, QueryWrapper queryWrapper) {
Page<T> page = new Page<>(pageNumber, pageSize, totalRow);
return paginateWithRelations(page, queryWrapper);
}
/** /**
* 根据条件分页查询 * 根据条件分页查询
@ -890,6 +905,15 @@ public interface BaseMapper<T> {
} }
default Page<T> paginateWithRelations(int pageNumber, int pageSize, int totalRow, QueryCondition condition) {
if (condition == null) {
throw FlexExceptions.wrap("condition can not be null.");
}
Page<T> page = new Page<>(pageNumber, pageSize, totalRow);
return paginateWithRelations(page, new QueryWrapper().where(condition));
}
/** /**
* 分页查询 * 分页查询
* *
@ -902,8 +926,21 @@ public interface BaseMapper<T> {
return paginateAs(page, queryWrapper, null, consumers); return paginateAs(page, queryWrapper, null, consumers);
} }
default Page<T> paginateWithRelations(Page<T> page, QueryWrapper queryWrapper, Consumer<FieldQueryBuilder<T>>... consumers) {
return doPaginate(page, queryWrapper, null, true, consumers);
}
default <R> Page<R> paginateAs(Page<R> page, QueryWrapper queryWrapper, Class<R> asType, Consumer<FieldQueryBuilder<R>>... consumers) { default <R> Page<R> paginateAs(Page<R> page, QueryWrapper queryWrapper, Class<R> asType, Consumer<FieldQueryBuilder<R>>... consumers) {
return doPaginate(page, queryWrapper, asType, false, consumers);
}
default <R> Page<R> paginateWithRelationsAs(Page<R> page, QueryWrapper queryWrapper, Class<R> asType, Consumer<FieldQueryBuilder<R>>... consumers) {
return doPaginate(page, queryWrapper, asType, true, consumers);
}
default <R> Page<R> doPaginate(Page<R> page, QueryWrapper queryWrapper, Class<R> asType, boolean withRelations, Consumer<FieldQueryBuilder<R>>... consumers) {
try { try {
// 只有 totalRow 小于 0 的时候才会去查询总量 // 只有 totalRow 小于 0 的时候才会去查询总量
// 这样方便用户做总数缓存而非每次都要去查询总量 // 这样方便用户做总数缓存而非每次都要去查询总量
@ -930,6 +967,11 @@ public interface BaseMapper<T> {
} else { } else {
records = (List<R>) selectListByQuery(queryWrapper); records = (List<R>) selectListByQuery(queryWrapper);
} }
if (withRelations) {
MapperUtil.queryRelations(this, records);
}
MapperUtil.queryFields(this, records, consumers); MapperUtil.queryFields(this, records, consumers);
page.setRecords(records); page.setRecords(records);