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); + } + }