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