From acb6b046855ac197735075db9dc8b8a97bc8bf75 Mon Sep 17 00:00:00 2001 From: zichun Date: Wed, 6 May 2026 21:50:04 +0800 Subject: [PATCH] feat(common): PageResult + MP pagination config REQ-USR-003 --- backend/src/main/java/com/xly/erp/common/response/PageResult.java | 24 ++++++++++++++++++++++++ backend/src/main/java/com/xly/erp/config/MybatisPlusConfig.java | 19 +++++++++++++++++++ 2 files changed, 43 insertions(+), 0 deletions(-) create mode 100644 backend/src/main/java/com/xly/erp/common/response/PageResult.java create mode 100644 backend/src/main/java/com/xly/erp/config/MybatisPlusConfig.java diff --git a/backend/src/main/java/com/xly/erp/common/response/PageResult.java b/backend/src/main/java/com/xly/erp/common/response/PageResult.java new file mode 100644 index 0000000..d26f9a7 --- /dev/null +++ b/backend/src/main/java/com/xly/erp/common/response/PageResult.java @@ -0,0 +1,24 @@ +package com.xly.erp.common.response; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** REQ-USR-003 引入的通用分页 VO。`data` 字段嵌套此结构。 */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PageResult { + private long total; + private List list = new ArrayList<>(); + private long pageNum; + private long pageSize; + + public static PageResult of(IPage page) { + return new PageResult<>(page.getTotal(), page.getRecords(), page.getCurrent(), page.getSize()); + } +} diff --git a/backend/src/main/java/com/xly/erp/config/MybatisPlusConfig.java b/backend/src/main/java/com/xly/erp/config/MybatisPlusConfig.java new file mode 100644 index 0000000..a0a3a1e --- /dev/null +++ b/backend/src/main/java/com/xly/erp/config/MybatisPlusConfig.java @@ -0,0 +1,19 @@ +package com.xly.erp.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** REQ-USR-003 引入:注册 MyBatis-Plus 分页拦截器,让 `Page` 自动追加 LIMIT 子句。 */ +@Configuration +public class MybatisPlusConfig { + + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; + } +} -- libgit2 0.22.2