From 8b98a7581d1051b98982fd6139f7ce9be69c141d Mon Sep 17 00:00:00 2001 From: chenchuchuan <13554600537@163.com> Date: Mon, 24 Aug 2026 17:18:18 +0800 Subject: [PATCH] =?UTF-8?q?refactor(online):=20=E6=9D=83=E9=99=90=E5=AD=97?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1=E6=94=B9=E4=B8=BA=E5=A3=B0?= =?UTF-8?q?=E6=98=8E=E5=BC=8F=E7=AE=A1=E7=90=86=E5=B9=B6=E8=A7=A3=E8=80=A6?= =?UTF-8?q?Mapper=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 OnlineAsyncConfig 配置专用线程池 permCodeTaskExecutor - 权限字生成与清理方法改用 @Async 和 @Transactional 注解替代手动线程池提交 - 将外部 OnlineSysPermCode* Mapper 引用替换为模块内部精简的 SysPermCode* Mapper - 新增 SysPermCodeMapper、SysPermCodePermMapper、SysPermMapper、SysPermModuleMapper 接口 - 在 OnlineAutoConfig 中通过 @Import 引入异步配置 --- .../common/online/config/OnlineAsyncConfig.java | 36 ++++++++++++++++++++++ .../common/online/config/OnlineAutoConfig.java | 2 ++ .../common/online/upms/dao/SysPermCodeMapper.java | 14 +++++++++ .../online/upms/dao/SysPermCodePermMapper.java | 14 +++++++++ .../common/online/upms/dao/SysPermMapper.java | 14 +++++++++ .../online/upms/dao/SysPermModuleMapper.java | 14 +++++++++ .../service/impl/OnlinePermCodeServiceImpl.java | 15 ++++++--- 7 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 common/common-online/src/main/java/apelet/common/online/config/OnlineAsyncConfig.java create mode 100644 common/common-online/src/main/java/apelet/common/online/upms/dao/SysPermCodeMapper.java create mode 100644 common/common-online/src/main/java/apelet/common/online/upms/dao/SysPermCodePermMapper.java create mode 100644 common/common-online/src/main/java/apelet/common/online/upms/dao/SysPermMapper.java create mode 100644 common/common-online/src/main/java/apelet/common/online/upms/dao/SysPermModuleMapper.java diff --git a/common/common-online/src/main/java/apelet/common/online/config/OnlineAsyncConfig.java b/common/common-online/src/main/java/apelet/common/online/config/OnlineAsyncConfig.java new file mode 100644 index 0000000..c9cf094 --- /dev/null +++ b/common/common-online/src/main/java/apelet/common/online/config/OnlineAsyncConfig.java @@ -0,0 +1,36 @@ +package apelet.common.online.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.ThreadPoolExecutor; + +/** + * common-online异步任务线程池配置。 + *
供在线表单发布生成权限字等异步任务使用。
+ * + * @author guifc + * @date 2023-08-04 + */ +@Configuration +@EnableAsync +public class OnlineAsyncConfig { + + /** + * 权限字生成/清理专用线程池。 + */ + @Bean("permCodeTaskExecutor") + public ThreadPoolTaskExecutor permCodeTaskExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(2); + executor.setMaxPoolSize(4); + executor.setQueueCapacity(100); + executor.setThreadNamePrefix("perm-code-"); + // 队列满时由调用线程执行,避免丢弃任务。 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.initialize(); + return executor; + } +} diff --git a/common/common-online/src/main/java/apelet/common/online/config/OnlineAutoConfig.java b/common/common-online/src/main/java/apelet/common/online/config/OnlineAutoConfig.java index 45338b2..ba86a99 100644 --- a/common/common-online/src/main/java/apelet/common/online/config/OnlineAutoConfig.java +++ b/common/common-online/src/main/java/apelet/common/online/config/OnlineAutoConfig.java @@ -1,6 +1,7 @@ package apelet.common.online.config; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Import; /** * common-online模块的自动配置引导类。 @@ -9,5 +10,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties * @date 2023-08-04 */ @EnableConfigurationProperties({OnlineProperties.class}) +@Import(OnlineAsyncConfig.class) public class OnlineAutoConfig { } diff --git a/common/common-online/src/main/java/apelet/common/online/upms/dao/SysPermCodeMapper.java b/common/common-online/src/main/java/apelet/common/online/upms/dao/SysPermCodeMapper.java new file mode 100644 index 0000000..d3225e7 --- /dev/null +++ b/common/common-online/src/main/java/apelet/common/online/upms/dao/SysPermCodeMapper.java @@ -0,0 +1,14 @@ +package apelet.common.online.upms.dao; + +import apelet.common.core.base.dao.BaseDaoMapper; +import apelet.common.online.upms.model.SysPermCode; + +/** + * 权限字数据访问操作接口。 + *在线表单发布自动生成权限字使用,精简自 tenant-admin 的同名 Mapper。
+ * + * @author guifc + * @date 2023-08-04 + */ +public interface SysPermCodeMapper extends BaseDaoMapper在线表单发布自动生成权限字使用,精简自 tenant-admin 的同名 Mapper。
+ * + * @author guifc + * @date 2023-08-04 + */ +public interface SysPermCodePermMapper extends BaseDaoMapper在线表单发布自动生成权限字使用,精简自 tenant-admin 的同名 Mapper。
+ * + * @author guifc + * @date 2023-08-04 + */ +public interface SysPermMapper extends BaseDaoMapper在线表单发布自动生成权限字使用,精简自 tenant-admin 的同名 Mapper。
+ * + * @author guifc + * @date 2023-08-04 + */ +public interface SysPermModuleMapper extends BaseDaoMapper