From 658c7f14b2fcb51641c15abfc4f5ac8698494d64 Mon Sep 17 00:00:00 2001
From: gong <1157756119@qq.com>
Date: Tue, 23 Dec 2025 15:15:42 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=80=BB=E6=95=B0=E9=87=8F?=
=?UTF-8?q?=E4=B8=BA=20-1=20=E7=9A=84=E6=83=85=E5=86=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/czg/config/MybatisFlexConfig.java | 54 +++++++++++++++++++
.../resources/mapper/PpPackageOrderMapper.xml | 5 +-
2 files changed, 55 insertions(+), 4 deletions(-)
diff --git a/cash-common/cash-common-api-config/src/main/java/com/czg/config/MybatisFlexConfig.java b/cash-common/cash-common-api-config/src/main/java/com/czg/config/MybatisFlexConfig.java
index d9731bd40..68407b3ee 100644
--- a/cash-common/cash-common-api-config/src/main/java/com/czg/config/MybatisFlexConfig.java
+++ b/cash-common/cash-common-api-config/src/main/java/com/czg/config/MybatisFlexConfig.java
@@ -1,7 +1,15 @@
package com.czg.config;
import com.mybatisflex.core.audit.AuditManager;
+import com.mybatisflex.core.paginate.Page;
import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
@@ -21,4 +29,50 @@ public class MybatisFlexConfig {
);
}
+ /**
+ * 处理 Spring 容器管理的 Page Bean
+ */
+ @Bean
+ public BeanPostProcessor pageBeanPostProcessor() {
+ return new BeanPostProcessor() {
+ @Override
+ public Object postProcessAfterInitialization(@NotNull Object bean, @NotNull String beanName) throws BeansException {
+ if (bean instanceof Page> page) {
+ resetPageDefaultValue(page);
+ }
+ return bean;
+ }
+ };
+ }
+
+ /**
+ * AOP 拦截所有 Page 实例的构造方法,重置初始值
+ * 覆盖手动 new Page() 的场景
+ */
+ @Aspect
+ public static class PageConstructorAspect {
+
+ // 切入点:匹配 Page 类的所有构造方法执行后
+ @Pointcut("execution(com.mybatisflex.core.pagination.Page+.new(..))")
+ public void pageConstructorPointcut() {}
+
+ // 构造方法执行后重置值
+ @AfterReturning(pointcut = "pageConstructorPointcut()", returning = "page")
+ public void afterPageConstruct(Page> page) {
+ resetPageDefaultValue(page);
+ }
+ }
+
+ /**
+ * 通用方法:重置 Page 初始值为 0
+ */
+ private static void resetPageDefaultValue(Page> page) {
+ if (page.getTotalPage() == -1) {
+ page.setTotalPage(0);
+ }
+ if (page.getTotalRow() == -1) {
+ page.setTotalRow(0);
+ }
+ }
+
}
diff --git a/cash-service/market-service/src/main/resources/mapper/PpPackageOrderMapper.xml b/cash-service/market-service/src/main/resources/mapper/PpPackageOrderMapper.xml
index d5f1b2419..9d6d7e2f0 100644
--- a/cash-service/market-service/src/main/resources/mapper/PpPackageOrderMapper.xml
+++ b/cash-service/market-service/src/main/resources/mapper/PpPackageOrderMapper.xml
@@ -15,10 +15,7 @@
left join tb_shop_info s on o.shop_id = s.id
left join pp_package p on o.package_id = p.id
left join tb_user_info u on o.user_id = u.id
- where 1=1
-
- and o.shop_id = #{shopId}
-
+ where o.shop_id = #{shopId}