Browse Source

docs(README): 更新代码生成原理和模板字段属性说明,增加使用指导

PIGCLOUD 1 month ago
parent
commit
b115ad3e4c
1 changed files with 103 additions and 50 deletions
  1. 103 50
      README.md

+ 103 - 50
README.md

@@ -1,50 +1,103 @@
-# 代码生成模板市场
-
-![1694686202](https://minio.pigx.top/oss/202309/1694686202.jpg)
-
-CGTM(代码生成模板市场)是一个在线平台,旨在为开发者提供更好的开发体验,提供各种代码生成模板。
-
-只需在点击"在线更新"按钮,即可轻松获取最新的代码生成模板。
-
-开发者也可以通过GitHub的pull request机制提交自己的模板,为社区贡献力量。
-
-## 特点
-
-- **丰富多样的模板**:CGTM提供了丰富多样的代码生成模板,涵盖了各种编程语言、框架和开发场景。无论您是进行Web开发、移动应用程序开发还是其他类型的软件项目,都可以找到适合您需求的模板。
-
-- **简便的更新**:跟上最新的编码实践和技术进展可能是一项具有挑战性的任务。CGTM通过提供"在线更新"功能简化了这一过程。通过使用此功能,开发者可以轻松获取最新的代码生成模板,无需手动搜索更新。
-
-- **社区贡献**:CGTM欢迎来自各方背景的开发者共同贡献代码生成模板。这种开放的合作方式让平台能够不断扩大模板库,满足开发者社区的多样化需求。
-
-## 如何使用
-
-1. 访问PIGX【代码生成】-> 【元数据】-> 【模板管理】点击"在线更新"按钮。
-2. 单击"在线更新"按钮,将您本地的模板与最新版本同步。
-3. 浏览可用的模板,并选择最适合当前开发需求的模板。
-4. 按照每个模板提供的说明生成所需的代码片段或项目结构。
-5. 享受代码生成带来的便利和效率,提升开发工作流程。
-
-## 贡献
-
-我们鼓励开发者通过GitHub的pull request提交自己的代码生成模板,为CGTM做出贡献。通过这样做,您可以帮助扩大仓库的规模,并帮助其他人进行编码工作。
-
-要进行贡献,请按照以下步骤进行:
-
-1. 在GitHub上Fork CGTM仓库。
-2. 创建一个新的分支,用于开发您的代码生成模板。
-3. 根据我们的贡献文档中的指南开发您的代码生成模板。
-4. 提交一个pull request,包括清晰的模板描述和文档。
-5. 您的模板将由CGTM团队进行审核,在批准后合并到主仓库中。
-
-## 许可证
-
-CGTM在[AGPL 3.0 许可证](https://github.com/pig-mesh/CGTM/blob/master/LICENSE)下发布。根据许可证中指定的条款,此类只对PIGX用户免费开放使用。
-
-## 支持
-
-如果您遇到任何问题或对CGTM有任何疑问,请通过[sw@pigx.vip](mailto:sw@pigx.top)与我们联系。我们将提供帮助,并确保平台的正常运行。
-
-让我们共同合作,通过CGTM使编码更高效、更愉悦!
-
-
-**免责声明:** 请注意,CGTM是一个社区驱动的平台,不对提供的模板功能或准确性负责。用户在将生成的代码应用于项目之前,请务必仔细审查和验证。
+## 代码生成原理
+
+当开发者选中某张表进行代码生成时,如下图所示,首先会注入 PIGX 定义好的 Velocity 模板(开发平台 > 模板管理)。然后查询此表的相关元信息(字段、注释)并注入。最终使用 Velocity 渲染出相关文本。
+
+<img src="https://minio.pigx.top/oss/202306/1685858464.jpg" alt="代码生成原理示意图" width="100%" />
+
+## Velocity 模板基础
+
+<Tip title="学习资源">
+参考 <a href="https://juejin.cn/post/7034112895277498404" target="_blank">Velocity 基本语法说明</a> 了解模板语法。
+</Tip>
+
+Entity 实体生成的模板代码:
+
+```java
+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
+}
+```
+
+<img src="https://minio.pigx.top/oss/202306/1685859452.png" alt="模板示例" width="100%" />
+
+## 上下文元信息
+
+如下属性可在 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      | 是否支持多租户     |