¶Ô±ÈÐÂÎļþ |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢ï¼æ ¹æ®ID æ¹éæ¥è¯¢ï¼ |
| | | * |
| | | * @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); |
| | | } |
| | | |
| | | } |
| | | |