feat: 数据字典相关接口提交

This commit is contained in:
2025-12-01 21:05:19 +08:00
parent 991f6850c7
commit f56b903bcc
33 changed files with 391 additions and 508 deletions

View File

@ -17,6 +17,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- jjwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>

View File

@ -0,0 +1,25 @@
package day.gitlab.dolphin.common.core.entity;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageRequest {
/** 当前分页默认1 */
@Min(1)
@NotNull
private Long pageNumber = 1L;
/** 分页条数默认10 */
@Min(1)
@NotNull
private Long pageSize = 10L;
}

View File

@ -0,0 +1,27 @@
package day.gitlab.dolphin.common.core.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageResponse<T> {
/** 总记录数 */
private Long total = 0L;
/** 当前分页默认1 */
private Long pageNumber = 1L;
/** 分页条数默认10 */
private Long pageSize = 10L;
/** 记录 */
private List<T> records;
}

View File

@ -0,0 +1,15 @@
package day.gitlab.dolphin.common.core.entity;
import lombok.*;
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class QueryPageRequest<T> extends PageRequest {
/**
* 查询参数
*/
private T query;
}

View File

@ -0,0 +1,35 @@
package day.gitlab.dolphin.common.mybatis;
import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import day.gitlab.dolphin.common.core.entity.PageResponse;
import day.gitlab.dolphin.common.core.entity.QueryPageRequest;
import java.util.Objects;
import java.util.function.BiFunction;
import java.util.function.Function;
public class Pages {
public static <T, E> Page<E> paginate(BaseMapper<E> mapper, QueryPageRequest<T> pageRequest, BiFunction<T, QueryWrapper, QueryWrapper> biFunction) {
Page<E> page = new Page<>(pageRequest.getPageNumber(), pageRequest.getPageSize());
QueryWrapper wrapper = new QueryWrapper();
wrapper = biFunction.apply(pageRequest.getQuery(), wrapper);
return mapper.paginate(page, wrapper);
}
public static <T, E> PageResponse<E> toPageResponse(Page<T> page, Function<T, E> mapFunction) {
PageResponse<E> pageResponse = new PageResponse<>();
pageResponse.setPageNumber(page.getPageNumber());
pageResponse.setPageSize(page.getPageSize());
pageResponse.setTotal(page.getTotalRow());
if (page.getRecords() != null) {
pageResponse.setRecords(page.getRecords().stream().map(mapFunction).filter(Objects::nonNull).toList());
}
return pageResponse;
}
}

View File

@ -9,6 +9,6 @@ public class UUIDv7KeyGenerator implements IKeyGenerator {
@Override
public Object generate(Object entity, String keyColumn) {
return UUIDv7.randomUUID().timestamp();
return UUIDv7.randomUUID().toString();
}
}