From 3b6ced8185a19c9377aa2a059142f15e3b23cd88 Mon Sep 17 00:00:00 2001 From: bleachtred <bleachtred@163.com> Date: 星期一, 27 三月 2023 16:35:12 +0800 Subject: [PATCH] update 优化BaseMapperPlus接口 去除 @param <M> Mapper 泛型 --- ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java | 38 ++++++++++++++++++++++---------------- 1 files changed, 22 insertions(+), 16 deletions(-) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java index 2c40e17..cbfe5cb 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java @@ -6,10 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.*; +import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.toolkit.Db; -import com.ruoyi.common.core.utils.BeanCopyUtils; +import com.ruoyi.common.core.utils.MapstructUtils; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; @@ -17,31 +17,29 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 鑷畾涔� Mapper 鎺ュ彛, 瀹炵幇 鑷畾涔夋墿灞� * - * @param <M> mapper 娉涘瀷 * @param <T> table 娉涘瀷 * @param <V> vo 娉涘瀷 * @author Lion Li * @since 2021-05-13 */ @SuppressWarnings("unchecked") -public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> { +public interface BaseMapperPlus<T, V> extends BaseMapper<T> { Log log = LogFactory.getLog(BaseMapperPlus.class); default Class<V> currentVoClass() { - return (Class<V>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 2); + return (Class<V>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 1); } default Class<T> currentModelClass() { - return (Class<T>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 1); - } - - default Class<M> currentMapperClass() { - return (Class<M>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 0); + return (Class<T>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 0); } default List<T> selectList() { @@ -109,7 +107,7 @@ if (ObjectUtil.isNull(obj)) { return null; } - return BeanCopyUtils.copy(obj, voClass); + return MapstructUtils.convert(obj, voClass); } default List<V> selectVoBatchIds(Collection<? extends Serializable> idList) { @@ -124,7 +122,7 @@ if (CollUtil.isEmpty(list)) { return CollUtil.newArrayList(); } - return BeanCopyUtils.copyList(list, voClass); + return MapstructUtils.convert(list, voClass); } default List<V> selectVoByMap(Map<String, Object> map) { @@ -139,7 +137,7 @@ if (CollUtil.isEmpty(list)) { return CollUtil.newArrayList(); } - return BeanCopyUtils.copyList(list, voClass); + return MapstructUtils.convert(list, voClass); } default V selectVoOne(Wrapper<T> wrapper) { @@ -154,7 +152,11 @@ if (ObjectUtil.isNull(obj)) { return null; } - return BeanCopyUtils.copy(obj, voClass); + return MapstructUtils.convert(obj, voClass); + } + + default List<V> selectVoList() { + return selectVoList(new QueryWrapper<>(), this.currentVoClass()); } default List<V> selectVoList(Wrapper<T> wrapper) { @@ -169,7 +171,7 @@ if (CollUtil.isEmpty(list)) { return CollUtil.newArrayList(); } - return BeanCopyUtils.copyList(list, voClass); + return MapstructUtils.convert(list, voClass); } default <P extends IPage<V>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper) { @@ -185,8 +187,12 @@ if (CollUtil.isEmpty(pageData.getRecords())) { return (P) voPage; } - voPage.setRecords(BeanCopyUtils.copyList(pageData.getRecords(), voClass)); + voPage.setRecords(MapstructUtils.convert(pageData.getRecords(), voClass)); return (P) voPage; } + default <C> List<C> selectObjs(Wrapper<T> wrapper, Function<? super Object, C> mapper) { + return this.selectObjs(wrapper).stream().filter(Objects::nonNull).map(mapper).collect(Collectors.toList()); + } + } -- Gitblit v1.9.3