From b493e456179b88260ebb1bd3e7cc16062cb1f2d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E8=BE=9E=E6=9C=AA=E5=AF=92?= <545073804@qq.com> Date: Mon, 6 Jan 2025 06:01:10 +0000 Subject: [PATCH] =?UTF-8?q?update=20BaseMapperPlus=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=92=8C=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=94=AF=E6=8C=81VO=E8=BD=AC=E6=8D=A2=E6=B6=88=E8=B4=B9?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 秋辞未寒 <545073804@qq.com> --- .../mybatis/core/mapper/BaseMapperPlus.java | 125 +++++++++++++++++- 1 file changed, 118 insertions(+), 7 deletions(-) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java index 24557edb6..4ee2b485b 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/mapper/BaseMapperPlus.java @@ -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 extends BaseMapper { * @return 查询到的VO对象列表 */ default List selectVoByIds(Collection idList) { - return selectVoByIds(idList, this.currentVoClass()); + return selectVoByIds(idList, (Consumer) null); + } + + /** + * 根据ID集合批量查询VO对象列表 + * + * @param idList 主键ID集合 + * @param beanConsumer 转换后的VO对象消费函数 + * @return 查询到的VO对象列表 + */ + default List selectVoByIds(Collection idList, Consumer beanConsumer) { + return selectVoByIds(idList, this.currentVoClass(), beanConsumer); } /** @@ -168,11 +180,24 @@ public interface BaseMapperPlus extends BaseMapper { * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 */ default List selectVoByIds(Collection idList, Class voClass) { + return selectVoByIds(idList, voClass, null); + } + + /** + * 根据ID集合批量查询实体对象列表,并将其转换为指定的VO对象列表 + * + * @param idList 主键ID集合 + * @param voClass 要转换的VO类的Class对象 + * @param beanConsumer 转换后的VO对象消费函数 + * @param VO类的类型 + * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 + */ + default List selectVoByIds(Collection idList, Class voClass, Consumer beanConsumer) { List 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 extends BaseMapper { * @return 查询到的VO对象列表 */ default List selectVoByMap(Map map) { - return selectVoByMap(map, this.currentVoClass()); + return selectVoByMap(map, (Consumer) null); + } + + /** + * 根据查询条件Map查询VO对象列表 + * + * @param map 查询条件Map + * @param beanConsumer 转换后的VO对象消费函数 + * @return 查询到的VO对象列表 + */ + default List selectVoByMap(Map map, Consumer beanConsumer) { + return selectVoByMap(map, this.currentVoClass(), beanConsumer); } /** @@ -194,11 +230,24 @@ public interface BaseMapperPlus extends BaseMapper { * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 */ default List selectVoByMap(Map map, Class voClass) { + return selectVoByMap(map, voClass, null); + } + + /** + * 根据查询条件Map查询实体对象列表,并将其转换为指定的VO对象列表 + * + * @param map 查询条件Map + * @param voClass 要转换的VO类的Class对象 + * @param beanConsumer 转换后的VO对象消费函数 + * @param VO类的类型 + * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 + */ + default List selectVoByMap(Map map, Class voClass, Consumer beanConsumer) { List 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 extends BaseMapper { return selectVoList(new QueryWrapper<>(), this.currentVoClass()); } + /** + * 查询所有VO对象列表 + * + * @param beanConsumer 转换后的VO对象消费函数 + * @return 查询到的VO对象列表 + */ + default List selectVoList(Consumer beanConsumer) { + return selectVoList(new QueryWrapper<>(), beanConsumer); + } + /** * 根据条件查询VO对象列表 * @@ -270,6 +329,18 @@ public interface BaseMapperPlus extends BaseMapper { return selectVoList(wrapper, this.currentVoClass()); } + /** + * 根据条件查询VO对象列表 + * + * @param wrapper 查询条件Wrapper + * @param beanConsumer 转换后的VO对象消费函数 + * @return 查询到的VO对象列表 + */ + default List selectVoList(Wrapper wrapper, Consumer beanConsumer) { + return selectVoList(wrapper, this.currentVoClass(), beanConsumer); + } + + /** * 根据条件查询实体对象列表,并将其转换为指定的VO对象列表 * @@ -279,11 +350,24 @@ public interface BaseMapperPlus extends BaseMapper { * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 */ default List selectVoList(Wrapper wrapper, Class voClass) { + return selectVoList(wrapper, voClass, null); + } + + /** + * 根据条件查询实体对象列表,并将其转换为指定的VO对象列表 + * + * @param wrapper 查询条件Wrapper + * @param voClass 要转换的VO类的Class对象 + * @param beanConsumer 转换后的VO对象消费函数 + * @param VO类的类型 + * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 + */ + default List selectVoList(Wrapper wrapper, Class voClass, Consumer beanConsumer) { List 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 extends BaseMapper { return selectVoPage(page, wrapper, this.currentVoClass()); } + /** + * 根据条件分页查询VO对象列表 + * + * @param page 分页信息 + * @param wrapper 查询条件Wrapper + * @param beanConsumer 转换后的VO对象消费函数 + * @return 查询到的VO对象分页列表 + */ + default

> P selectVoPage(IPage page, Wrapper wrapper, Consumer beanConsumer) { + return selectVoPage(page, wrapper, this.currentVoClass(), beanConsumer); + } + /** * 根据条件分页查询实体对象列表,并将其转换为指定的VO对象分页列表 * @@ -308,6 +404,21 @@ public interface BaseMapperPlus extends BaseMapper { * @return 查询到的VO对象分页列表,经过转换为指定的VO类后返回 */ default > P selectVoPage(IPage page, Wrapper wrapper, Class voClass) { + return selectVoPage(page, wrapper, voClass, null); + } + + /** + * 根据条件分页查询实体对象列表,并将其转换为指定的VO对象分页列表 + * + * @param page 分页信息 + * @param wrapper 查询条件Wrapper + * @param voClass 要转换的VO类的Class对象 + * @param beanConsumer 转换后的VO对象消费函数 + * @param VO类的类型 + * @param

VO对象分页列表的类型 + * @return 查询到的VO对象分页列表,经过转换为指定的VO类后返回 + */ + default > P selectVoPage(IPage page, Wrapper wrapper, Class voClass, Consumer beanConsumer) { // 根据条件分页查询实体对象列表 List list = this.selectList(page, wrapper); // 创建一个新的VO对象分页列表,并设置分页信息 @@ -315,7 +426,7 @@ public interface BaseMapperPlus extends BaseMapper { 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 extends BaseMapper { return StreamUtils.toList(this.selectObjs(wrapper), mapper); } -} +} \ No newline at end of file