update BaseMapperPlus列表查询和分页查询支持VO转换消费函数

Signed-off-by: 秋辞未寒 <545073804@qq.com>
This commit is contained in:
秋辞未寒 2025-01-06 06:01:10 +00:00 committed by Gitee
parent bd9e581e01
commit b493e45617
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -18,6 +18,7 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;
/**
@ -156,7 +157,18 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
* @return 查询到的VO对象列表
*/
default List<V> selectVoByIds(Collection<? extends Serializable> idList) {
return selectVoByIds(idList, this.currentVoClass());
return selectVoByIds(idList, (Consumer<V>) null);
}
/**
* 根据ID集合批量查询VO对象列表
*
* @param idList 主键ID集合
* @param beanConsumer 转换后的VO对象消费函数
* @return 查询到的VO对象列表
*/
default List<V> selectVoByIds(Collection<? extends Serializable> idList, Consumer<V> beanConsumer) {
return selectVoByIds(idList, this.currentVoClass(), beanConsumer);
}
/**
@ -168,11 +180,24 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
* @return 查询到的VO对象列表经过转换为指定的VO类后返回
*/
default <C> List<C> selectVoByIds(Collection<? extends Serializable> idList, Class<C> voClass) {
return selectVoByIds(idList, voClass, null);
}
/**
* 根据ID集合批量查询实体对象列表并将其转换为指定的VO对象列表
*
* @param idList 主键ID集合
* @param voClass 要转换的VO类的Class对象
* @param beanConsumer 转换后的VO对象消费函数
* @param <C> VO类的类型
* @return 查询到的VO对象列表经过转换为指定的VO类后返回
*/
default <C> List<C> selectVoByIds(Collection<? extends Serializable> idList, Class<C> voClass, Consumer<C> beanConsumer) {
List<T> list = this.selectByIds(idList);
if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList();
}
return MapstructUtils.convert(list, voClass);
return MapstructUtils.convert(list, voClass, beanConsumer);
}
/**
@ -182,7 +207,18 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
* @return 查询到的VO对象列表
*/
default List<V> selectVoByMap(Map<String, Object> map) {
return selectVoByMap(map, this.currentVoClass());
return selectVoByMap(map, (Consumer<V>) null);
}
/**
* 根据查询条件Map查询VO对象列表
*
* @param map 查询条件Map
* @param beanConsumer 转换后的VO对象消费函数
* @return 查询到的VO对象列表
*/
default List<V> selectVoByMap(Map<String, Object> map, Consumer<V> beanConsumer) {
return selectVoByMap(map, this.currentVoClass(), beanConsumer);
}
/**
@ -194,11 +230,24 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
* @return 查询到的VO对象列表经过转换为指定的VO类后返回
*/
default <C> List<C> selectVoByMap(Map<String, Object> map, Class<C> voClass) {
return selectVoByMap(map, voClass, null);
}
/**
* 根据查询条件Map查询实体对象列表并将其转换为指定的VO对象列表
*
* @param map 查询条件Map
* @param voClass 要转换的VO类的Class对象
* @param beanConsumer 转换后的VO对象消费函数
* @param <C> VO类的类型
* @return 查询到的VO对象列表经过转换为指定的VO类后返回
*/
default <C> List<C> selectVoByMap(Map<String, Object> map, Class<C> voClass, Consumer<C> beanConsumer) {
List<T> list = this.selectByMap(map);
if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList();
}
return MapstructUtils.convert(list, voClass);
return MapstructUtils.convert(list, voClass, beanConsumer);
}
/**
@ -260,6 +309,16 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
return selectVoList(new QueryWrapper<>(), this.currentVoClass());
}
/**
* 查询所有VO对象列表
*
* @param beanConsumer 转换后的VO对象消费函数
* @return 查询到的VO对象列表
*/
default List<V> selectVoList(Consumer<V> beanConsumer) {
return selectVoList(new QueryWrapper<>(), beanConsumer);
}
/**
* 根据条件查询VO对象列表
*
@ -270,6 +329,18 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
return selectVoList(wrapper, this.currentVoClass());
}
/**
* 根据条件查询VO对象列表
*
* @param wrapper 查询条件Wrapper
* @param beanConsumer 转换后的VO对象消费函数
* @return 查询到的VO对象列表
*/
default List<V> selectVoList(Wrapper<T> wrapper, Consumer<V> beanConsumer) {
return selectVoList(wrapper, this.currentVoClass(), beanConsumer);
}
/**
* 根据条件查询实体对象列表并将其转换为指定的VO对象列表
*
@ -279,11 +350,24 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
* @return 查询到的VO对象列表经过转换为指定的VO类后返回
*/
default <C> List<C> selectVoList(Wrapper<T> wrapper, Class<C> voClass) {
return selectVoList(wrapper, voClass, null);
}
/**
* 根据条件查询实体对象列表并将其转换为指定的VO对象列表
*
* @param wrapper 查询条件Wrapper
* @param voClass 要转换的VO类的Class对象
* @param beanConsumer 转换后的VO对象消费函数
* @param <C> VO类的类型
* @return 查询到的VO对象列表经过转换为指定的VO类后返回
*/
default <C> List<C> selectVoList(Wrapper<T> wrapper, Class<C> voClass, Consumer<C> beanConsumer) {
List<T> list = this.selectList(wrapper);
if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList();
}
return MapstructUtils.convert(list, voClass);
return MapstructUtils.convert(list, voClass, beanConsumer);
}
/**
@ -297,6 +381,18 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
return selectVoPage(page, wrapper, this.currentVoClass());
}
/**
* 根据条件分页查询VO对象列表
*
* @param page 分页信息
* @param wrapper 查询条件Wrapper
* @param beanConsumer 转换后的VO对象消费函数
* @return 查询到的VO对象分页列表
*/
default <P extends IPage<V>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper, Consumer<V> beanConsumer) {
return selectVoPage(page, wrapper, this.currentVoClass(), beanConsumer);
}
/**
* 根据条件分页查询实体对象列表并将其转换为指定的VO对象分页列表
*
@ -308,6 +404,21 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
* @return 查询到的VO对象分页列表经过转换为指定的VO类后返回
*/
default <C, P extends IPage<C>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper, Class<C> voClass) {
return selectVoPage(page, wrapper, voClass, null);
}
/**
* 根据条件分页查询实体对象列表并将其转换为指定的VO对象分页列表
*
* @param page 分页信息
* @param wrapper 查询条件Wrapper
* @param voClass 要转换的VO类的Class对象
* @param beanConsumer 转换后的VO对象消费函数
* @param <C> VO类的类型
* @param <P> VO对象分页列表的类型
* @return 查询到的VO对象分页列表经过转换为指定的VO类后返回
*/
default <C, P extends IPage<C>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper, Class<C> voClass, Consumer<C> beanConsumer) {
// 根据条件分页查询实体对象列表
List<T> list = this.selectList(page, wrapper);
// 创建一个新的VO对象分页列表并设置分页信息
@ -315,7 +426,7 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
if (CollUtil.isEmpty(list)) {
return (P) voPage;
}
voPage.setRecords(MapstructUtils.convert(list, voClass));
voPage.setRecords(MapstructUtils.convert(list, voClass, beanConsumer));
return (P) voPage;
}
@ -331,4 +442,4 @@ public interface BaseMapperPlus<T, V> extends BaseMapper<T> {
return StreamUtils.toList(this.selectObjs(wrapper), mapper);
}
}
}