1.8 KiB
1.8 KiB
10.7 实战案例
:::tip 概述
以 gin_example 为对象完整走一遍生成流程:预览 → 生成 → 重启 → 验证。生成产物应与项目内置 example 模块高度一致——这也是检验模板正确性的手段。
:::
准备
- 数据库已导入种子脚本(gin_example 存在)
- 后端依赖就绪(可
go run)
步骤一:预览
make gen-preview TABLES="gin_example|示例表"
观察 stdout 输出的文件清单与内容:dto 标签、ModuleSpec 声明、RouteSpec 块、前端页面。对照 3.11 完整代码清单。
步骤二:生成
make gen TABLES="gin_example|示例表"
结果分类:
| 分类 | 本例预期 |
|---|---|
| generated/overwritten | 视 overwrite 策略(example 已存在 → false 时全 skipped,true 时覆盖) |
| menu | 幂等(已存在同名菜单则不重复建) |
| dict | example_status 已存在 → 跳过或补项 |
| route | router.go 已有 CExample 块 → 幂等跳过 |
步骤三:重启验证
make run # 重启使路由注册生效
pnpm dev # 前端(如页面有调整)
验证点:
- 接口可访问(Swagger 看 /api/example/*)
- 菜单出现且权限节点齐全
- 页面增删改查、导入导出正常
- 字典回填 statusText 正常
从 example 到你的模块
① 建表(COMMENT 写全枚举取值;唯一列建 uk_ 索引;租户级加 tenant_id)
② make gen TABLES="gin_order|订单"
③ 重启 → 页面验证
④ 按业务手写补充(导入导出、特殊校验、数据权限声明)
生成解决 80% 的标准形态,20% 的业务差异走手写方法与声明微调——这正是 ModuleSpec"声明 + 逃生舱"设计的呼应。