From 62e8ea94e83456d9d5dac9d85ef8181c6be2e89c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E9=94=90=E6=B3=A2?= <10549902+zhuangruibo@user.noreply.gitee.com> Date: Sat, 18 Apr 2026 20:08:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/enterprise/TestEnfDemoController.java | 16 +++++++++ .../mapper/TestEnfDemoMapper.java | 24 +++++++++++++ .../service/ITestEnfDemoService.java | 18 ++++++++++ .../service/impl/TestEnfDemoServiceImpl.java | 34 ++++++++++++++++++- .../enforcementcode/TestEnfDemoMapper.xml | 23 +++++++++++++ 5 files changed, 114 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/TestEnfDemoController.java b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/TestEnfDemoController.java index 3aad3428..6809215e 100644 --- a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/TestEnfDemoController.java +++ b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/TestEnfDemoController.java @@ -45,6 +45,22 @@ public class TestEnfDemoController extends BaseController { return testEnfDemoService.queryPageList(bo, pageQuery); } + /** + * 自定义SQL分页查询enf测试单列表(方式二demo) + */ + @GetMapping("/customList") + public TableDataInfo customList(TestEnfDemoBo bo, PageQuery pageQuery) { + return testEnfDemoService.customPageList(bo, pageQuery); + } + + /** + * 全手动分页查询enf测试单列表(方案A demo,完全绕过拦截器) + */ + @GetMapping("/manualList") + public TableDataInfo manualList(TestEnfDemoBo bo, PageQuery pageQuery) { + return testEnfDemoService.manualPageList(bo, pageQuery); + } + /** * 导出enf测试单列表 */ diff --git a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/TestEnfDemoMapper.java b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/TestEnfDemoMapper.java index bdc2823f..63190856 100644 --- a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/TestEnfDemoMapper.java +++ b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/TestEnfDemoMapper.java @@ -1,15 +1,39 @@ package com.zdxt.enforcementcode.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zdxt.enforcementcode.domain.TestEnfDemo; import com.zdxt.enforcementcode.domain.vo.TestEnfDemoVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * enf测试单Mapper接口 * * @author Lion Li * @date 2026-04-18 */ +@Mapper public interface TestEnfDemoMapper extends BaseMapperPlus { + /** + * 自定义SQL分页查询 + */ + Page customPageList(@Param("page") Page page, @Param("ew") Wrapper wrapper); + + /** + * 手动分页 - 查询总数(不经过拦截器) + */ + Long manualCount(@Param("ew") Wrapper wrapper); + + /** + * 手动分页 - 查询当前页数据(SQL中自带LIMIT,不经过拦截器) + */ + List manualSelectList(@Param("ew") Wrapper wrapper, + @Param("offset") int offset, + @Param("pageSize") int pageSize); + } diff --git a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/ITestEnfDemoService.java b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/ITestEnfDemoService.java index 14711be0..2323b706 100644 --- a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/ITestEnfDemoService.java +++ b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/ITestEnfDemoService.java @@ -33,6 +33,24 @@ public interface ITestEnfDemoService { */ TableDataInfo queryPageList(TestEnfDemoBo bo, PageQuery pageQuery); + /** + * 自定义SQL分页查询enf测试单列表(方式二demo) + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return enf测试单分页列表 + */ + TableDataInfo customPageList(TestEnfDemoBo bo, PageQuery pageQuery); + + /** + * 全手动分页查询enf测试单列表(方案A demo,完全绕过拦截器) + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return enf测试单分页列表 + */ + TableDataInfo manualPageList(TestEnfDemoBo bo, PageQuery pageQuery); + /** * 查询符合条件的enf测试单列表 * diff --git a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/TestEnfDemoServiceImpl.java b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/TestEnfDemoServiceImpl.java index e2849242..90313f11 100644 --- a/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/TestEnfDemoServiceImpl.java +++ b/ruoyi-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/TestEnfDemoServiceImpl.java @@ -58,6 +58,38 @@ public class TestEnfDemoServiceImpl implements ITestEnfDemoService { return TableDataInfo.build(result); } + /** + * 自定义SQL分页查询enf测试单列表(方式二demo) + */ + @Override + public TableDataInfo customPageList(TestEnfDemoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.customPageList(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 全手动分页(方案A demo) + * 完全绕过PaginationInnerInterceptor拦截器,自己控制COUNT和LIMIT + */ + @Override + public TableDataInfo manualPageList(TestEnfDemoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + // 1. 手动查询总数 + Long total = baseMapper.manualCount(lqw); + if (total == null || total == 0) { + return TableDataInfo.build(); + } + // 2. 手动计算offset + int pageNum = pageQuery.getPageNum() != null ? pageQuery.getPageNum() : 1; + int pageSize = pageQuery.getPageSize() != null ? pageQuery.getPageSize() : 10; + int offset = (pageNum - 1) * pageSize; + // 3. 查询当前页数据(SQL中自带LIMIT,不传IPage,拦截器不会介入) + List list = baseMapper.manualSelectList(lqw, offset, pageSize); + // 4. 手动组装分页结果 + return new TableDataInfo<>(list, total); + } + /** * 查询符合条件的enf测试单列表 * @@ -74,7 +106,7 @@ public class TestEnfDemoServiceImpl implements ITestEnfDemoService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TestEnfDemo::getId); - lqw.eq(StringUtils.isNotBlank(bo.getEnfText()), TestEnfDemo::getEnfText, bo.getEnfText()); + lqw.like(StringUtils.isNotBlank(bo.getEnfText()), TestEnfDemo::getEnfText, bo.getEnfText()); lqw.eq(StringUtils.isNotBlank(bo.getEnfContent()), TestEnfDemo::getEnfContent, bo.getEnfContent()); lqw.eq(bo.getDeptId() != null, TestEnfDemo::getDeptId, bo.getDeptId()); lqw.eq(bo.getUserId() != null, TestEnfDemo::getUserId, bo.getUserId()); diff --git a/ruoyi-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/TestEnfDemoMapper.xml b/ruoyi-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/TestEnfDemoMapper.xml index 170a029b..b691c249 100644 --- a/ruoyi-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/TestEnfDemoMapper.xml +++ b/ruoyi-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/TestEnfDemoMapper.xml @@ -3,4 +3,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + +