@@ -62,6 +62,7 @@ src/main/resources/db/migrate/mysql
6262- ` domain/common `
6363- ` domain/system `
6464- 系统用户、角色、菜单、部门、岗位、字典、日志、通知、定时任务等框架领域能力
65+ - 系统定时任务运行时、运行日志清理任务和相关单元测试
6566
6667自动配置:
6768
@@ -82,6 +83,7 @@ KeystoneFrameworkDomainAutoConfiguration
8283- ` admin/controller/common `
8384- ` admin/controller/system `
8485- ` admin/customize `
86+ - 系统监控、日志、用户、角色、菜单、定时任务等框架 controller
8587
8688自动配置:
8789
@@ -95,6 +97,8 @@ KeystoneFrameworkAdminAutoConfiguration
9597- 业务 controller
9698- 业务 application service
9799
100+ ` keystone-admin ` 不应再保留同路径的框架 controller 副本。例如 ` /monitor/** ` 由 ` keystone-framework-admin ` 提供,主应用中不要再新增 ` app.keystone.admin.controller.system.MonitorController ` 。
101+
98102### keystone-framework-spring-boot-starter
99103
100104只做依赖聚合,原则上不放业务代码。
@@ -113,6 +117,8 @@ starter 模块可以放少量测试,用于验证依赖链、自动配置和资
113117
114118保留为空的下游扩展模块。开源分支不在该模块内放置业务领域代码或业务迁移资源。
115119
120+ 当前 ` src/main/java ` 应保持无框架运行时代码。框架领域代码、框架定时任务和框架单元测试必须放在 ` keystone-framework-domain ` 。如果下游应用需要自己的业务能力,应放在消费应用自己的领域模块和迁移路径中。
121+
116122### keystone-admin
117123
118124保留 Keystone 可执行应用入口。
@@ -131,6 +137,8 @@ classpath:db/migrate/common
131137classpath:db/migrate/mysql
132138```
133139
140+ 主应用启动类只保留 ` @SpringBootApplication ` 。不要重新添加 ` @ComponentScan(basePackages = "app.keystone.*") ` ,否则会绕过 starter 自动配置边界,导致重复 controller 或隐藏自动配置缺失问题。
141+
134142## 自动配置维护规则
135143
136144自动配置注册文件:
@@ -160,6 +168,27 @@ keystone:
160168 enabled : true
161169` ` `
162170
171+ ## 系统导出维护规则
172+
173+ 系统管理导出接口必须使用无分页查询方法,不能复用分页列表结果。分页列表只返回当前页,导出接口需要导出筛选条件下的完整集合。
174+
175+ 当前约定:
176+
177+ ` ` ` text
178+ SysUserController.exportUserByExcel -> UserApplicationService.exportUsers
179+ SysRoleController.export -> RoleApplicationService.exportRoles
180+ SysLogsController.loginInfosExcel -> LogApplicationService.exportLoginInfos
181+ SysLogsController.operationLogsExcel -> LogApplicationService.exportOperationLogs
182+ ConfigApplicationService.exportConfigs
183+ ```
184+
185+ 维护要求:
186+
187+ - 新增系统导出接口时,在 application service 中提供明确的 ` export... ` 方法。
188+ - ` export... ` 方法使用 ` list(...) ` 或专门的无分页 mapper 方法,不调用 ` page(...) ` 。
189+ - 需要稳定排序的日志类导出必须补充主排序字段之外的 ID 倒序,例如 ` login_time, info_id ` 。
190+ - 对应测试放在 ` keystone-framework-domain/src/test/java/app/keystone/domain/system/SystemExportApplicationServiceTest.java ` 。
191+
163192## 发布维护
164193
165194框架相关发布模块:
@@ -285,6 +314,9 @@ jar tf keystone-domain\build\libs\keystone-domain-3.6.1.jar | Select-String "db/
285314``` text
286315keystone-framework-admin/src/test/java/app/keystone/framework/admin/autoconfigure/KeystoneFrameworkAdminAutoConfigurationTest.java
287316keystone-framework-domain/src/test/java/app/keystone/framework/domain/autoconfigure/KeystoneFrameworkDomainAutoConfigurationTest.java
317+ keystone-framework-domain/src/test/java/app/keystone/domain/system/SystemExportApplicationServiceTest.java
318+ keystone-framework-domain/src/test/java/app/keystone/domain/system/job/runtime/JobInvokeUtilTest.java
319+ keystone-framework-domain/src/test/java/app/keystone/domain/system/job/runtime/JobSchedulerManagerTest.java
288320keystone-framework-spring-boot-starter/src/test/java/app/keystone/framework/starter/KeystoneFrameworkStarterDependencyTest.java
289321```
290322
0 commit comments