基础服务类BaseService以及BaseServiceImpl模式化书写

public interface BaseService<T> extends IService<T> {

    Integer PAGE_SIZE = 200;

    T selectOne(QueryWrapper<T> wrapper, Criteria<T> criteria, String group);

    T selectOne(QueryWrapper<T> wrapper, Criteria<T> criteria);

    T selectOne(Criteria<T> criteria);

    Map<String, Object> selectMap(QueryWrapper<T> wrapper, Criteria<T> criteria);

    Map<String, Object> selectMap(Criteria<T> criteria);

    int selectCount(QueryWrapper<T> wrapper, Criteria<T> criteria, String group);

    int selectCount(QueryWrapper<T> wrapper, Criteria<T> criteria);

    int selectCount(Criteria<T> criteria);

    List<Object> selectObjs(QueryWrapper<T> wrapper, Criteria<T> criteria, String group);

    List<Object> selectObjs(QueryWrapper<T> wrapper, Criteria<T> criteria);

    List<Object> selectObjs(Criteria<T> criteria);

    Page<Map<String, Object>> selectMapsPage(Page page, QueryWrapper<T> wrapper, Criteria<T> criteria, String group);

    Page<Map<String, Object>> selectMapsPage(Page page, QueryWrapper<T> wrapper, Criteria<T> criteria);

    Page<Map<String, Object>> selectMapsPage(Page page, Criteria<T> criteria);

    List<T> selectList(QueryWrapper<T> wrapper, Criteria<T> criteria, String group);

    List<T> selectList(QueryWrapper<T> wrapper, Criteria<T> criteria);

    List<T> selectList(Criteria<T> criteria);

    Page<T> selectPage(Page<T> page, QueryWrapper<T> wrapper, Criteria<T> criteria, String group);

    Page<T> selectPage(Page<T> page, QueryWrapper<T> wrapper, Criteria<T> criteria);

    Page<T> selectPage(Page<T> page, Criteria<T> criteria);

    Page<T> selectPage(PageableCriteria pageableCriteria);

    /**
     * 分页IN查询
     */
    default <E, R> List<R> listByPage(Collection<E> collection, Function<List<E>, List<R>> function, int pageSize) {
        if (CollUtil.isEmpty(collection)) {
            return Collections.emptyList();
        }

        List<E> list = (collection instanceof List) ? (List<E>) collection : new ArrayList<>(collection);

        return ListUtils.partition(list, pageSize)
                        .parallelStream()
                        .map(function)
                        .flatMap(Collection::stream)
                        .collect(Collectors.toList());
    }
}
public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> implements BaseService<T> {


    protected CriteriaParser criteriaParser = new CriteriaParser();


    @Override
    public T selectOne(QueryWrapper<T> wrapper, Criteria<T> criteria,String group){
        return (T) getOne(this.criteriaParser.parse(criteria,wrapper,group));
    }

........too many  @Override
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bst@微胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值