feat: 组织架构相关接口提交

This commit is contained in:
2025-12-06 14:53:59 +08:00
parent a8c9152a05
commit 755086a799
24 changed files with 725 additions and 48 deletions

View File

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

View File

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

View File

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

View File

@ -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;