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);
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
}