From bd89cc0287914628046e57134c0bafb9287d2660 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 15 十二月 2021 12:17:04 +0800 Subject: [PATCH] update ServicePlusImpl 功能 下沉到 BaseMapperPlus --- ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/ServicePlusImpl.java | 48 ++++++++---------------- ruoyi-common/src/main/java/com/ruoyi/common/core/mybatisplus/core/BaseMapperPlus.java | 66 +++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 32 deletions(-) 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 ee20abd..24f9d91 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 @@ */ int insertAll(@Param("list") Collection<T> batchList); + /** + * 鏍规嵁 ID 鏌ヨ + */ + default <V> V selectVoById(Serializable id, Class<V> voClass){ + T obj = this.selectById(id); + return BeanCopyUtils.copy(obj, voClass); + } + + /** + * 鏌ヨ锛堟牴鎹甀D 鎵归噺鏌ヨ锛� + */ + default <V> List<V> selectVoBatchIds(Collection<? extends Serializable> idList, Class<V> voClass){ + List<T> list = this.selectBatchIds(idList); + if (list == null) { + return null; + } + return BeanCopyUtils.copyList(list, voClass); + } + + /** + * 鏌ヨ锛堟牴鎹� columnMap 鏉′欢锛� + */ + default <V> List<V> selectVoByMap(Map<String, Object> map, Class<V> voClass){ + List<T> list = this.selectByMap(map); + if (list == null) { + return null; + } + return BeanCopyUtils.copyList(list, voClass); + } + + /** + * 鏍规嵁 entity 鏉′欢锛屾煡璇竴鏉¤褰� + */ + default <V> V selectVoOne(Wrapper<T> wrapper, Class<V> voClass) { + T obj = this.selectOne(wrapper); + return BeanCopyUtils.copy(obj, voClass); + } + + /** + * 鏍规嵁 entity 鏉′欢锛屾煡璇㈠叏閮ㄨ褰� + */ + default <V> List<V> selectVoList(Wrapper<T> wrapper, Class<V> voClass) { + List<T> list = this.selectList(wrapper); + if (list == null) { + return null; + } + return BeanCopyUtils.copyList(list, voClass); + } + + /** + * 鍒嗛〉鏌ヨVO + */ + default <V> IPage<V> selectVoPage(IPage<T> page, Wrapper<T> wrapper, Class<V> voClass) { + IPage<T> pageData = this.selectPage(page, wrapper); + IPage<V> 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 4de5b32..2773024 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 @@ 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 @@ /** * 鏍规嵁 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); } /** * 鏌ヨ锛堟牴鎹甀D 鎵归噺鏌ヨ锛� - * - * @param idList 涓婚敭ID鍒楄〃 */ @Override public List<V> listVoByIds(Collection<? extends Serializable> idList) { - List<T> 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<V> listVoByMap(Map<String, Object> columnMap) { - List<T> list = getBaseMapper().selectByMap(columnMap); - if (list == null) { - return null; - } - return BeanCopyUtils.copyList(list, voClass); + return getBaseMapper().selectVoByMap(columnMap, voClass); } /** * 鏍规嵁 Wrapper锛屾煡璇竴鏉¤褰� <br/> * <p>缁撴灉闆嗭紝濡傛灉鏄涓細鎶涘嚭寮傚父锛岄殢鏈哄彇涓�鏉″姞涓婇檺鍒舵潯浠� wrapper.last("LIMIT 1")</p> - * - * @param queryWrapper 瀹炰綋瀵硅薄灏佽鎿嶄綔绫� {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ @Override public V getVoOne(Wrapper<T> 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<V> listVo(Wrapper<T> queryWrapper) { - List<T> 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<T, V> pageVo(PagePlus<T, V> page, Wrapper<T> queryWrapper) { @@ -237,4 +211,14 @@ return result; } + /** + * 缈婚〉鏌ヨ + * + * @param page 缈婚〉瀵硅薄 + * @param queryWrapper 瀹炰綋瀵硅薄灏佽鎿嶄綔绫� + */ + public IPage<V> pageVo(IPage<T> page, Wrapper<T> queryWrapper) { + return getBaseMapper().selectVoPage(page, queryWrapper, voClass); + } + } -- Gitblit v1.9.3