diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/BaseMapperPlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/BaseMapperPlus.java index ee20abd81..24f9d91eb 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/BaseMapperPlus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/BaseMapperPlus.java @@ -1,9 +1,16 @@ package com.ruoyi.common.core.mybatisplus.core; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.utils.BeanCopyUtils; import org.apache.ibatis.annotations.Param; +import java.io.Serializable; import java.util.Collection; +import java.util.List; +import java.util.Map; /** * 自定义 Mapper 接口, 实现 自定义扩展 @@ -18,4 +25,63 @@ public interface BaseMapperPlus extends BaseMapper { */ int insertAll(@Param("list") Collection batchList); + /** + * 根据 ID 查询 + */ + default V selectVoById(Serializable id, Class voClass){ + T obj = this.selectById(id); + return BeanCopyUtils.copy(obj, voClass); + } + + /** + * 查询(根据ID 批量查询) + */ + default List selectVoBatchIds(Collection idList, Class voClass){ + List list = this.selectBatchIds(idList); + if (list == null) { + return null; + } + return BeanCopyUtils.copyList(list, voClass); + } + + /** + * 查询(根据 columnMap 条件) + */ + default List selectVoByMap(Map map, Class voClass){ + List list = this.selectByMap(map); + if (list == null) { + return null; + } + return BeanCopyUtils.copyList(list, voClass); + } + + /** + * 根据 entity 条件,查询一条记录 + */ + default V selectVoOne(Wrapper wrapper, Class voClass) { + T obj = this.selectOne(wrapper); + return BeanCopyUtils.copy(obj, voClass); + } + + /** + * 根据 entity 条件,查询全部记录 + */ + default List selectVoList(Wrapper wrapper, Class voClass) { + List list = this.selectList(wrapper); + if (list == null) { + return null; + } + return BeanCopyUtils.copyList(list, voClass); + } + + /** + * 分页查询VO + */ + default IPage selectVoPage(IPage page, Wrapper wrapper, Class voClass) { + IPage pageData = this.selectPage(page, wrapper); + IPage voPage = new Page<>(pageData.getCurrent(), pageData.getSize(), pageData.getTotal()); + voPage.setRecords(BeanCopyUtils.copyList(pageData.getRecords(), voClass)); + return voPage; + } + } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java index 4de5b326d..277302493 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.common.core.mybatisplus.core; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.toolkit.Assert; @@ -160,74 +161,47 @@ public class ServicePlusImpl, T, V> extends ServiceI /** * 根据 ID 查询 - * - * @param id 主键ID */ @Override public V getVoById(Serializable id) { - T t = getBaseMapper().selectById(id); - return BeanCopyUtils.copy(t, voClass); + return getBaseMapper().selectVoById(id, voClass); } /** * 查询(根据ID 批量查询) - * - * @param idList 主键ID列表 */ @Override public List listVoByIds(Collection idList) { - List list = getBaseMapper().selectBatchIds(idList); - if (list == null) { - return null; - } - return BeanCopyUtils.copyList(list, voClass); + return getBaseMapper().selectVoBatchIds(idList, voClass); } /** * 查询(根据 columnMap 条件) - * - * @param columnMap 表字段 map 对象 */ @Override public List listVoByMap(Map columnMap) { - List list = getBaseMapper().selectByMap(columnMap); - if (list == null) { - return null; - } - return BeanCopyUtils.copyList(list, voClass); + return getBaseMapper().selectVoByMap(columnMap, voClass); } /** * 根据 Wrapper,查询一条记录
*

结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")

- * - * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ @Override public V getVoOne(Wrapper queryWrapper) { - T t = getOne(queryWrapper, true); - return BeanCopyUtils.copy(t, voClass); + return getBaseMapper().selectVoOne(queryWrapper, voClass); } /** * 查询列表 - * - * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ @Override public List listVo(Wrapper queryWrapper) { - List list = getBaseMapper().selectList(queryWrapper); - if (list == null) { - return null; - } - return BeanCopyUtils.copyList(list, voClass); + return getBaseMapper().selectVoList(queryWrapper, voClass); } /** * 翻页查询 - * - * @param page 翻页对象 - * @param queryWrapper 实体对象封装操作类 */ @Override public PagePlus pageVo(PagePlus page, Wrapper queryWrapper) { @@ -237,4 +211,14 @@ public class ServicePlusImpl, T, V> extends ServiceI return result; } + /** + * 翻页查询 + * + * @param page 翻页对象 + * @param queryWrapper 实体对象封装操作类 + */ + public IPage pageVo(IPage page, Wrapper queryWrapper) { + return getBaseMapper().selectVoPage(page, queryWrapper, voClass); + } + }