本仓库仅做镜像,仓库PR源:https://github.com/pig-mesh/CGTM

PIGCLOUD b115ad3e4c docs(README): 更新代码生成原理和模板字段属性说明,增加使用指导 1 month ago
.cursor de2c121a36 feat: add new rules for development workflow, Java templates, project overview, template structure, and Velocity templates 11 months ago
.github 7b9cfdbd27 chore: update mirror repository workflow to include 'next' branch 9 months ago
common 7f2c4ce25c refactor: enhance API documentation and improve form component structure for better readability and maintainability 11 months ago
multiple d3d0c9726e fix(导出功能): 修复导出 Excel 时的对象合并方式,确保正确传递查询参数 2 months ago
single d3d0c9726e fix(导出功能): 修复导出 Excel 时的对象合并方式,确保正确传递查询参数 2 months ago
.gitignore bf1e6543fd ♻️ 重构 config.json 1 year ago
CLAUDE.md d5b734ea6b fix(主子表格): 修复删除和导出功能中的 selectObjs 引用,确保正确处理选中项 2 months ago
LICENSE 20067c3bee Initial commit 2 years ago
README.md b115ad3e4c docs(README): 更新代码生成原理和模板字段属性说明,增加使用指导 1 month ago
VERSION 5027f796ad chore: update version to V2025001 10 months ago
config.json 331d573536 refactor: remove unused vform configuration and templates to streamline project structure 10 months ago

README.md

代码生成原理

当开发者选中某张表进行代码生成时,如下图所示,首先会注入 PIGX 定义好的 Velocity 模板(开发平台 > 模板管理)。然后查询此表的相关元信息(字段、注释)并注入。最终使用 Velocity 渲染出相关文本。

代码生成原理示意图

Velocity 模板基础

参考 Velocity 基本语法说明 了解模板语法。

Entity 实体生成的模板代码:

public class ${ClassName}Entity extends Model<${ClassName}Entity> {

#foreach ($field in $fieldList)
#if($field.primaryPk)
    @TableId(type = IdType.ASSIGN_ID)
#end
    @Schema(description="$comment"#if($field.hidden),hidden=$field.hidden#end)
    private $field.attrType $field.attrName;
#end
}

模板示例

上下文元信息

如下属性可在 Velocity 模板中直接使用相关语法进行取值。

模板基本属性

Key Description
dbType 数据库类型
package 包名
packagePath 包路径
version 版本
moduleName 模块名
ModuleName 模块名首字母大写
functionName 功能名
FunctionName 功能名首字母大写
formLayout 表单布局
style 样式,对应的模板组
author 作者
datetime 当前日期和时间
date 当前日期
importList 导入列表
tableName 数据库表名
tableComment 数据库表注释
className 类名的小写形式
ClassName 类名
fieldList 字段列表
backendPath 后端路径
frontendPath 前端路径
childFieldList 子表字段列表
childTableName 子表名
mainField 主表关联字段名称
childField 子表关联字段名称
ChildClassName 子类名首字母大写
childClassName 子类名的小写形式
primaryList 主键字段列表
formList 表单字段列表
gridList 表格字段列表
queryList 查询字段列表
pk 主键字段

模板字段属性

Key Description
dsName 数据源名
tableName 表名称
fieldName SQL 字段名称
fieldType SQL 字段类型
attrName Java 属性名
attrType Java 属性类型
fieldComment 字段说明
sort 排序
packageName 属性包名
autoFill 自动填充
primaryPk 是否为主键
baseField 是否为基类字段
formItem 是否为表单项
formRequired 表单必填
formType 表单类型
formValidator 表单效验
gridItem 是否为列表项
gridSort 列表排序
queryItem 是否为查询项
queryType 查询方式
queryFormType 查询表单类型
fieldDict 字段字典类型

环境判断属性

Key Description
isSpringBoot3 是否是 springboot3
isTenant 是否支持多租户