123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package com.fjhx.email.config.base;
- import cn.hutool.core.util.ObjectUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.IService;
- import java.util.List;
- import java.util.Map;
- import java.util.Objects;
- import java.util.function.Consumer;
- import java.util.stream.Collectors;
- @SuppressWarnings("unused")
- public interface BaseService<T> extends IService<T> {
- default Page<T> page(BaseSelectVo baseSelectVo, Consumer<LambdaQueryWrapper<T>> consumer) {
- return page(baseSelectVo.getPage(), Wrappers.<T>lambdaQuery().func(consumer));
- }
- default long count(Consumer<LambdaQueryWrapper<T>> consumer) {
- return count(Wrappers.<T>lambdaQuery().func(ObjectUtil.isNotEmpty(consumer), consumer));
- }
- default T getOne(Consumer<LambdaQueryWrapper<T>> consumer) {
- return getOne(Wrappers.<T>lambdaQuery().func(ObjectUtil.isNotEmpty(consumer), consumer).last("limit 1"));
- }
- default List<T> list(Consumer<LambdaQueryWrapper<T>> consumer) {
- return list(Wrappers.<T>lambdaQuery().func(ObjectUtil.isNotEmpty(consumer), consumer));
- }
- default List<Map<String, Object>> listMaps(Consumer<LambdaQueryWrapper<T>> consumer) {
- return listMaps(Wrappers.<T>lambdaQuery().func(ObjectUtil.isNotEmpty(consumer), consumer));
- }
- default <K> List<K> listK(SFunction<T, K> mapper, Consumer<LambdaQueryWrapper<T>> consumer) {
- List<T> list = list(Wrappers.<T>lambdaQuery().select(mapper).func(ObjectUtil.isNotEmpty(consumer), consumer));
- return list.stream().map(mapper).filter(Objects::nonNull).distinct().collect(Collectors.toList());
- }
- default <K, V> Map<K, V> mapKV(SFunction<T, K> kFun, SFunction<T, V> vFun, Consumer<LambdaQueryWrapper<T>> consumer) {
- List<T> list = list(Wrappers.<T>lambdaQuery().select(kFun, vFun).func(ObjectUtil.isNotEmpty(consumer), consumer));
- return list.stream().collect(Collectors.toMap(kFun, vFun, (v1, v2) -> v2));
- }
- default <K> Map<K, T> mapKEntity(SFunction<T, K> kFun, Consumer<LambdaQueryWrapper<T>> consumer) {
- List<T> list = list(Wrappers.<T>lambdaQuery().func(ObjectUtil.isNotEmpty(consumer), consumer));
- return list.stream().collect(Collectors.toMap(kFun, item -> item, (v1, v2) -> v2));
- }
- default <K> Map<K, List<T>> mapKGroup(SFunction<T, K> kFun, Consumer<LambdaQueryWrapper<T>> consumer) {
- List<T> list = list(Wrappers.<T>lambdaQuery().func(ObjectUtil.isNotEmpty(consumer), consumer));
- return list.stream().collect(Collectors.groupingBy(kFun));
- }
- default boolean update(Consumer<LambdaUpdateWrapper<T>> consumer) {
- return update(Wrappers.<T>lambdaUpdate().func(ObjectUtil.isNotEmpty(consumer), consumer));
- }
- default boolean remove(Consumer<LambdaQueryWrapper<T>> consumer) {
- return remove(Wrappers.<T>lambdaQuery().func(ObjectUtil.isNotEmpty(consumer), consumer));
- }
- }
|