package com.ruoyi.common.core.mybatisplus.core; 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.function.Function; /** * 自定义 Service 接口, 实现 数据库实体与 vo 对象转换返回 * * @param 数据实体类 * @param vo类 * @author Lion Li */ public interface IServicePlus extends IService { /** * @param id 主键id * @return V对象 */ V getVoById(Serializable id); /** * @param convertor 自定义转换器 */ default V getVoById(Serializable id, Function convertor) { return convertor.apply(getById(id)); } /** * @param idList id列表 * @return V对象 */ List listVoByIds(Collection idList); /** * @param convertor 自定义转换器 */ default List listVoByIds(Collection idList, Function, List> convertor) { List list = getBaseMapper().selectBatchIds(idList); if (list == null) { return null; } return convertor.apply(list); } /** * @param columnMap 表字段 map 对象 * @return V对象 */ List listVoByMap(Map columnMap); /** * @param convertor 自定义转换器 */ default List listVoByMap(Map columnMap, Function, List> convertor) { List list = getBaseMapper().selectByMap(columnMap); if (list == null) { return null; } return convertor.apply(list); } /** * @param queryWrapper 查询条件 * @return V对象 */ V getVoOne(Wrapper queryWrapper); /** * @param convertor 自定义转换器 */ default V getVoOne(Wrapper queryWrapper, Function convertor) { return convertor.apply(getOne(queryWrapper, true)); } /** * @param queryWrapper 查询条件 * @return V对象 */ List listVo(Wrapper queryWrapper); /** * @param convertor 自定义转换器 */ default List listVo(Wrapper queryWrapper, Function, List> convertor) { List list = getBaseMapper().selectList(queryWrapper); if (list == null) { return null; } return convertor.apply(list); } default List listVo() { return listVo(Wrappers.emptyWrapper()); } /** * @param convertor 自定义转换器 */ default List listVo(Function, List> convertor) { return listVo(Wrappers.emptyWrapper(), convertor); } boolean saveAll(Collection entityList); boolean saveOrUpdateAll(Collection entityList); }