From 09ae31b86dec4f5e1edb4ec7382bb2756143e373 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Mon, 28 Jul 2025 18:47:19 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=B0=81=E8=A3=85=E9=80=9A=E7=94=A8=20s?= =?UTF-8?q?electVoSingle=20=E4=B8=8E=20selectVoPage=20=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/core/mapper/BaseMapperPlus.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) 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..75f0c61c8 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 @@ -331,4 +331,31 @@ public interface BaseMapperPlus extends BaseMapper { return StreamUtils.toList(this.selectObjs(wrapper), mapper); } + /** + * 根据条件查询单个VO对象(返回第1条,不抛异常) + * + * @param wrapper 查询条件Wrapper + * @return 查询到的单个VO对象,经过转换为指定的VO类后返回 + */ + default V selectVoSingle(Wrapper wrapper) { + return selectVoSingle(wrapper, this.currentVoClass()); + } + + /** + * 根据条件查询单个VO对象(返回第1条,不抛异常) + * + * @param wrapper 查询条件Wrapper + * @param voClass 要转换的VO类的Class对象 + * @param VO类的类型 + * @return 查询到的单个VO对象,经过转换为指定的VO类后返回 + */ + default C selectVoSingle(Wrapper wrapper, Class voClass) { + // 限制只查一条记录 + List list = this.selectList(new Page<>(1, 1), wrapper); + if (CollUtil.isEmpty(list)) { + return null; + } + return MapstructUtils.convert(list.get(0), voClass); + } + }