代码生成器高级功能规划
文档目标
本文面向技术开发人员,用于记录 joolun-codegen 代码生成器当前完成度、后续高级功能方向、开发优先级和验收标准。
代码生成器的目标不是只生成简单 CRUD,而是尽量生成可直接复制、可编译、可运行、可持续维护的业务代码,减少重复开发和人工拼接成本。
当前已完成能力
基础配置能力
- 项目配置:支持维护项目名称、项目编码、基础包名、后端根目录、前端根目录、作者、表前缀。
- 数据源配置:支持维护数据源、测试连接、按数据源读取数据库表。
- 表导入:支持单表导入和批量导入。
- 模型管理:支持模型列表、模型配置、字段配置、删除模型。
- 模板管理:支持内置模板初始化、模板列表、模板编辑、模板启用和删除。
基础生成能力
- 支持生成后端
Entity、Mapper、Mapper XML、Service、ServiceImpl、Controller。 - 支持生成前端
api.ts、index.vue、src/const/crud配置文件。 - 支持生成菜单权限 SQL。
- 支持生成预检、生成预览、下载 ZIP、写入项目目录。
- 支持写入前识别已存在文件,避免默认覆盖。
模型类型能力
- 单表:支持标准增删改查生成。
- 树表:支持父级字段、名称字段配置,生成树形查询逻辑。
- 主子表:支持一对多、一对一、多对多关系配置。
关系生成能力
- 一对多:支持生成主表保存、修改、详情、删除时对子表数据的处理。
- 一对一:支持生成主表与单个关联对象的保存、详情和删除处理。
- 多对多:支持中间表名、中间表主字段、中间表关联字段配置。
- 多对多:支持根据真实数据库表结构自动识别可能的中间表和关联字段。
- 多对多:支持生成后端中间表读写方法。
- 多对多:支持生成前端远程选择器。
- 模型配置页已增加关系预检面板,可提前看到关系配置错误、警告和通过状态。
稳定性能力
- 已增加 Velocity 模板语法测试,避免模板语法错误到生成预览阶段才暴露。
- 内置模板优先读取 classpath 模板文件,避免数据库旧模板内容覆盖新模板导致生成失败。
未开发高级功能
1. 真实生成代码编译验证
目标
生成代码后,系统自动验证生成结果是否能通过后端和前端编译,避免“预览能看、写入后不能跑”的问题。
功能点
- 后端 Java 编译验证。
- Mapper XML 基础语法验证。
- 前端 Vue、TypeScript 类型验证。
- 生成文件路径合法性验证。
- 生成代码依赖检查,例如关联模型 API 是否存在。
- 校验结果在页面展示为错误、警告、通过。
建议优先级
P0,优先开发。
验收标准
- 单表、树表、主子表、多对多样例生成后能自动给出编译验证结果。
- 编译失败时能定位到具体文件、具体错误信息。
- 不写入项目也能先进行验证。
2. 写入前差异对比增强
目标
提升写入项目目录的安全性,避免覆盖人工修改代码。
功能点
- 按文件展示新增、覆盖、跳过、冲突。
- 支持查看当前文件与生成文件差异。
- 支持单个文件选择写入。
- 支持批量选择写入。
- 支持保留
.bak备份。 - 支持按模板类型筛选:后端、前端、SQL、文档、测试。
建议优先级
P0,优先开发。
验收标准
- 已存在文件默认不覆盖。
- 用户可以明确选择覆盖哪些文件。
- 覆盖前可查看差异。
3. 关联表查询与展示增强
目标
不仅生成数据维护,还生成常见关联查询和关联字段展示能力。
功能点
- 支持列表页显示关联表字段,例如显示分类名称、用户昵称、供应商名称。
- 支持远程下拉选择关联对象。
- 支持列表查询条件使用关联对象。
- 支持后端自动生成
left join查询或分页 VO 查询。 - 支持配置关联字段、展示字段、查询字段。
建议优先级
P1。
验收标准
- 生成列表页能展示关联对象名称,而不是只展示 ID。
- 生成查询接口能支持关联字段筛选。
- 支持一张主表配置多个关联对象。
4. 多对多编辑回显增强
目标
解决多对多编辑页面回显不完整的问题。
功能点
- 按已选 ID 批量查询关联对象。
- 编辑打开时能完整显示已选对象标签。
- 支持远程搜索和分页加载。
- 支持配置关联对象显示字段。
- 支持配置关联对象搜索字段。
建议优先级
P1。
验收标准
- 多对多编辑时,历史已选数据能正确显示名称。
- 已选数据不依赖第一页分页数据。
5. 主子表高级生成
目标
让主子表生成能力覆盖更复杂的业务表单。
功能点
- 支持多个子表分组展示。
- 支持多级主子表。
- 支持子表行内校验。
- 支持子表批量新增、删除、复制行。
- 支持子表默认值。
- 支持子表合计字段,例如金额合计、数量合计。
- 支持子表排序字段。
建议优先级
P1。
验收标准
- 一个主模型可配置多个子模型。
- 生成页面能清晰展示不同子表。
- 主表保存时能正确处理全部子表。
6. 表单布局设计器
目标
让生成页面不只是普通表单,而是可以根据业务场景生成更合理的页面结构。
功能点
- 支持分组表单。
- 支持 Tabs 表单。
- 支持折叠面板。
- 支持一行多列。
- 支持字段排序拖拽。
- 支持字段宽度配置。
- 支持字段提示文案。
- 支持只读、隐藏、禁用条件。
建议优先级
P1。
验收标准
- 字段配置页可配置表单布局。
- 生成的
index.vue能按布局配置渲染。
7. 查询区高级配置
目标
增强列表查询能力,减少生成后手工改查询区。
功能点
- 支持高级查询折叠面板。
- 支持日期范围查询。
- 支持数值范围查询。
- 支持枚举多选。
- 支持远程选择。
- 支持默认查询条件。
- 支持查询字段排序。
- 支持查询字段是否默认展开。
建议优先级
P1。
验收标准
- 常见查询场景可通过字段配置生成。
- 后端查询条件和前端查询组件保持一致。
8. 字段智能规则增强
目标
导入表后自动识别字段语义,减少人工配置。
功能点
- 自动识别手机号、邮箱、URL、身份证号。
- 自动识别金额、价格、成本、费用。
- 自动识别图片、视频、文件。
- 自动识别富文本、JSON。
- 自动识别状态、类型、枚举。
- 自动识别创建人、更新人、创建时间、更新时间、租户字段、逻辑删除字段。
- 自动生成前端校验规则和后端校验注解。
建议优先级
P1。
验收标准
- 导入表后字段组件和校验规则基本符合字段含义。
- 人工修改配置后不会被再次自动覆盖。
9. 字典与枚举生成
目标
减少状态类字段的重复配置。
功能点
- 根据字段注释识别枚举项,例如
0-禁用 1-启用。 - 自动生成字典数据 SQL。
- 自动生成前端字典配置。
- 自动生成 Java 枚举。
- 自动生成 TypeScript 枚举。
- 支持字典类型绑定。
建议优先级
P2。
验收标准
- 字段注释规范时能自动解析枚举。
- 生成前后端枚举命名一致。
10. 菜单权限生成增强
目标
生成代码后可以快速完成菜单、按钮、接口权限配置。
功能点
- 自动生成菜单 SQL。
- 自动生成按钮权限 SQL。
- 支持权限前缀预览。
- 支持一键写入菜单表。
- 支持角色授权建议。
- 支持菜单图标、排序、父级菜单配置。
建议优先级
P2。
验收标准
- 生成模块后无需手工拼权限标识。
- 菜单权限和 Controller 权限表达式一致。
11. 导入导出生成
目标
为常见后台管理场景自动生成 Excel 导入、导出能力。
功能点
- 生成 Excel 导出接口。
- 生成 Excel 导入接口。
- 生成导入模板下载接口。
- 支持字段导入导出开关。
- 支持导入校验错误明细。
- 支持导入结果汇总。
建议优先级
P2。
验收标准
- 列表页可直接导出。
- 用户可下载模板并导入数据。
- 导入失败能定位到行号和字段。
12. 测试代码生成
目标
生成业务代码的同时生成基础测试骨架,提升交付质量。
功能点
- 生成 Service 单元测试。
- 生成 Controller 接口测试。
- 生成 Mapper 基础测试。
- 生成测试数据构造器。
- 支持主子表测试样例。
- 支持多对多保存、修改、删除测试样例。
建议优先级
P2。
验收标准
- 生成的测试能作为开发人员继续补充业务断言的基础。
- 关键 CRUD 流程有默认测试骨架。
13. API 文档生成
目标
生成接口说明,方便前后端联调和后续维护。
功能点
- 生成 Markdown 接口文档。
- 生成字段说明。
- 生成请求示例。
- 生成响应示例。
- 生成错误码说明。
- 与 Swagger 注解保持一致。
建议优先级
P2。
验收标准
- 生成模块后自动得到接口说明文档。
- 文档可直接放入 Gitea Wiki。
14. 业务模板市场
目标
让代码生成器从 CRUD 生成器升级为业务模块生成器。
功能点
- 内置订单模板。
- 内置商品模板。
- 内置审批模板。
- 内置报表模板。
- 内置字典管理模板。
- 内置导入导出模板。
- 支持模板分组、版本、启用、回滚。
- 支持项目级模板覆盖。
建议优先级
P3。
验收标准
- 新业务可以基于模板快速生成一组完整文件。
- 模板升级可控,不影响已自定义模板。
15. 工作流与状态机生成
目标
面向订单、审批、售后、结算等有状态流转的业务,生成状态机骨架。
功能点
- 配置状态字段。
- 配置状态枚举。
- 配置状态流转规则。
- 生成状态变更方法。
- 生成状态变更校验。
- 生成状态操作按钮。
- 生成状态流转日志。
建议优先级
P3。
验收标准
- 可配置一个业务对象的状态流转图。
- 生成代码能阻止非法状态变更。
16. 多租户、数据权限、审计策略生成
目标
生成代码时自动符合平台通用架构规范。
功能点
- 识别租户字段并生成租户隔离逻辑。
- 识别逻辑删除字段并生成删除策略。
- 识别创建人、更新人字段并生成审计填充。
- 支持店铺数据权限。
- 支持供应商数据权限。
- 支持部门数据权限。
建议优先级
P2。
验收标准
- 生成代码默认符合多租户和数据权限规范。
- 不需要开发人员手工补通用字段处理逻辑。
推荐开发路线图
第一阶段:提升生成可用性
目标是保证生成结果更稳、更安全。
- 真实生成代码编译验证。
- 写入前差异对比增强。
- 多对多编辑回显增强。
- 关联表查询与展示增强。
第二阶段:提升生成完整度
目标是减少生成后手工改页面和接口。
- 主子表高级生成。
- 表单布局设计器。
- 查询区高级配置。
- 字段智能规则增强。
第三阶段:提升业务覆盖度
目标是从 CRUD 生成升级到业务模块生成。
- 字典与枚举生成。
- 导入导出生成。
- 测试代码生成。
- API 文档生成。
- 菜单权限生成增强。
第四阶段:平台化能力
目标是形成可持续扩展的代码生成平台。
- 业务模板市场。
- 工作流与状态机生成。
- 多租户、数据权限、审计策略生成。
- 模板版本管理和回滚。
当前建议优先开发项
建议下一步优先开发:
- 真实生成代码编译验证。
- 写入前差异对比增强。
- 多对多编辑回显增强。
- 关联表字段展示与远程选择生成。
原因:
- 这几项最直接影响生成器是否真正可用。
- 可以减少生成后手工排错。
- 可以提高复杂业务表单生成质量。
- 对后续模板市场和业务模块生成有基础支撑作用。
验收样例建议
建议准备以下样例表用于持续验证:
- 单表:
demo_notice。 - 树表:
demo_category。 - 一对多:
demo_order+demo_order_item。 - 一对一:
demo_user+demo_user_profile。 - 多对多:
demo_role+demo_menu+demo_role_menu。 - 关联查询:
demo_goods+demo_category。 - 导入导出:
demo_customer。
每次增强代码生成器后,都应使用这些样例执行:
- 导入表。
- 配置字段。
- 配置关系。
- 生成预检。
- 生成预览。
- 写入项目。
- 后端编译。
- 前端类型检查。
风险与注意事项
- 模板能力越强,Velocity 模板复杂度越高,必须保留模板语法测试。
- 写入项目目录必须默认安全,不能默认覆盖已有文件。
- 内置模板和自定义模板要区分,避免升级内置模板时覆盖用户自定义模板。
- 高级关系生成要优先保证可编译,再逐步优化交互体验。
- 生成器生成的代码应遵循项目现有架构,不应引入新的技术栈或不一致的代码风格。