feat: 组织架构相关接口提交
This commit is contained in:
@ -0,0 +1,20 @@
|
||||
package day.gitlab.dolphin.common.core.util;
|
||||
|
||||
public class Pair<T, E> {
|
||||
|
||||
private final T t;
|
||||
private final E e;
|
||||
|
||||
public Pair(T t, E e) {
|
||||
this.t = t;
|
||||
this.e = e;
|
||||
}
|
||||
|
||||
public T getFirst() {
|
||||
return t;
|
||||
}
|
||||
|
||||
public E getLast() {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package day.gitlab.dolphin.common.mybatis.util;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import day.gitlab.dolphin.common.web.entity.PageRequest;
|
||||
import day.gitlab.dolphin.common.web.entity.PageResponse;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class Mappers {
|
||||
|
||||
public static <T, E> Page<E> page(PageRequest<T> pageRequest,
|
||||
BaseMapper<E> mapper,
|
||||
Function<T, LambdaQueryWrapper<E>> function) {
|
||||
Page<E> reqPage = toPage(pageRequest);
|
||||
LambdaQueryWrapper<E> wrapper = function.apply(pageRequest.getQuery());
|
||||
|
||||
Page<E> resPage = mapper.selectPage(reqPage, wrapper);
|
||||
Long count = mapper.selectCount(wrapper);
|
||||
resPage.setTotal(count);
|
||||
|
||||
return resPage;
|
||||
}
|
||||
|
||||
public static <T, E> Page<E> toPage(PageRequest<T> pageRequest) {
|
||||
return new Page<>(pageRequest.getPageIndex(), pageRequest.getPageSize());
|
||||
}
|
||||
|
||||
public static <T, E> PageResponse<E> mapPage(Page<T> page, Function<T, E> mapper) {
|
||||
List<E> records = page.getRecords().stream().map(mapper).toList();
|
||||
|
||||
return new PageResponse<>(page.getCurrent(), page.getSize(), page.getTotal(), records);
|
||||
}
|
||||
}
|
||||
@ -1,39 +0,0 @@
|
||||
package day.gitlab.dolphin.common.mybatis.util;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import day.gitlab.dolphin.common.web.entity.PageRequest;
|
||||
import day.gitlab.dolphin.common.web.entity.PageResponse;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class Pages {
|
||||
|
||||
public static <T, E> Page<E> paginate(PageRequest<T> pageRequest, BaseMapper<E> mapper, BiFunction<T, LambdaQueryWrapper<E>, LambdaQueryWrapper<E>> biFunction) {
|
||||
Page<E> page = new Page<>(pageRequest.getPageIndex(), pageRequest.getPageSize());
|
||||
LambdaQueryWrapper<E> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper = biFunction.apply(pageRequest.getQuery(), wrapper);
|
||||
|
||||
Page<E> ePage = mapper.selectPage(page, wrapper);
|
||||
Long t = mapper.selectCount(wrapper);
|
||||
page.setTotal(t);
|
||||
return ePage;
|
||||
}
|
||||
|
||||
public static <T, E> PageResponse<E> toPageResponse(Page<T> page, Function<T, E> mapFunction) {
|
||||
PageResponse<E> pageResponse = new PageResponse<>();
|
||||
pageResponse.setPageIndex(page.getCurrent());
|
||||
pageResponse.setPageSize(page.getSize());
|
||||
pageResponse.setTotal(page.getTotal());
|
||||
|
||||
if (page.getRecords() != null) {
|
||||
pageResponse.setRecords(page.getRecords().stream().map(mapFunction).filter(Objects::nonNull).toList());
|
||||
}
|
||||
|
||||
return pageResponse;
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package day.gitlab.dolphin.common.mybatis.entity;
|
||||
package day.gitlab.dolphin.common.mybatis.util;
|
||||
|
||||
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
|
||||
import day.gitlab.dolphin.common.core.util.UUIDv7;
|
||||
Reference in New Issue
Block a user