From b0417338ccc0c4381a65dc0a709e7473564bd589 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 13 五月 2021 21:24:47 +0800 Subject: [PATCH] add 增加升级版通用Service IServicePlus --- ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java | 126 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 126 insertions(+), 0 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java new file mode 100644 index 0000000..864a38e --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/IServicePlus.java @@ -0,0 +1,126 @@ +package com.ruoyi.common.core.page; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 鑷畾涔� Service 鎺ュ彛, 瀹炵幇 鏁版嵁搴撳疄浣撲笌 vo 瀵硅薄杞崲杩斿洖 + * + * @author Lion Li + * @since 2021-05-13 + */ +public interface IServicePlus<T> extends IService<T> { + + /** + * 鏍规嵁 ID 鏌ヨ + * + * @param kClass vo绫诲瀷 + * @param id 涓婚敭ID + */ + default <K> K getVoById(Serializable id, Class<K> kClass) { + T t = getBaseMapper().selectById(id); + return BeanUtil.toBean(t, kClass); + } + + /** + * 鏌ヨ锛堟牴鎹甀D 鎵归噺鏌ヨ锛� + * + * @param kClass vo绫诲瀷 + * @param idList 涓婚敭ID鍒楄〃 + */ + default <K> List<K> listVoByIds(Collection<? extends Serializable> idList, Class<K> kClass) { + List<T> list = getBaseMapper().selectBatchIds(idList); + if (list == null) { + return null; + } + return list.stream() + .map(any -> BeanUtil.toBean(any, kClass)) + .collect(Collectors.toList()); + } + + /** + * 鏌ヨ锛堟牴鎹� columnMap 鏉′欢锛� + * + * @param kClass vo绫诲瀷 + * @param columnMap 琛ㄥ瓧娈� map 瀵硅薄 + */ + default <K> List<K> listVoByMap(Map<String, Object> columnMap, Class<K> kClass) { + List<T> list = getBaseMapper().selectByMap(columnMap); + if (list == null) { + return null; + } + return list.stream() + .map(any -> BeanUtil.toBean(any, kClass)) + .collect(Collectors.toList()); + } + + /** + * 鏍规嵁 Wrapper锛屾煡璇竴鏉¤褰� <br/> + * <p>缁撴灉闆嗭紝濡傛灉鏄涓細鎶涘嚭寮傚父锛岄殢鏈哄彇涓�鏉″姞涓婇檺鍒舵潯浠� wrapper.last("LIMIT 1")</p> + * + * @param kClass vo绫诲瀷 + * @param queryWrapper 瀹炰綋瀵硅薄灏佽鎿嶄綔绫� {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} + */ + default <K> K getVoOne(Wrapper<T> queryWrapper, Class<K> kClass) { + return BeanUtil.toBean(getOne(queryWrapper, true), kClass); + } + + /** + * 鏌ヨ鍒楄〃 + * + * @param kClass vo绫诲瀷 + * @param queryWrapper 瀹炰綋瀵硅薄灏佽鎿嶄綔绫� {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} + */ + default <K> List<K> listVo(Wrapper<T> queryWrapper, Class<K> kClass) { + List<T> list = getBaseMapper().selectList(queryWrapper); + if (list == null) { + return null; + } + return list.stream() + .map(any -> BeanUtil.toBean(any, kClass)) + .collect(Collectors.toList()); + } + + /** + * 鏌ヨ鎵�鏈� + * + * @param kClass vo绫诲瀷 + * @see Wrappers#emptyWrapper() + */ + default <K> List<K> listVo(Class<K> kClass) { + return listVo(Wrappers.emptyWrapper(), kClass); + } + + /** + * 缈婚〉鏌ヨ + * + * @param page 缈婚〉瀵硅薄 + * @param queryWrapper 瀹炰綋瀵硅薄灏佽鎿嶄綔绫� + * @param kClass vo绫诲瀷 + */ + default <K> PagePlus<T, K> pageVo(PagePlus<T, K> page, Wrapper<T> queryWrapper, Class<K> kClass) { + PagePlus<T, K> e = getBaseMapper().selectPage(page, queryWrapper); + page.recordsToVo(kClass); + return page; + } + + /** + * 鏃犳潯浠剁炕椤垫煡璇� + * + * @param page 缈婚〉瀵硅薄 + * @param kClass vo绫诲瀷 + */ + default <K> PagePlus<T, K> pageVo(PagePlus<T, K> page, Class<K> kClass) { + return pageVo(page, Wrappers.emptyWrapper(), kClass); + } + +} + -- Gitblit v1.9.3