代码生成器功能说明
已实现的功能
1. 核心功能
- ✅ 数据库表导入
- ✅ 代码生成配置
- ✅ 模板引擎生成代码
- ✅ 前后端代码生成
- ✅ ZIP打包下载
- ✅ 代码预览
- ✅ 批量生成代码
- ✅ 数据库表结构同步
- ✅ 表信息查询
2. 生成的代码文件
- ✅ Python后端代码
- Entity实体类 (
domain/{ClassName}.py)
- PO查询对象 (
domain/po.py)
- Mapper数据访问层 (
mapper/{class_name}_mapper.py)
- Service业务逻辑层 (
service/{class_name}_service.py)
- Controller控制层 (
controller/{class_name}_controller.py)
- ✅ Vue前端代码
- 页面组件 (
vue/{business_name}/index.vue)
- API接口 (
api/{module_name}/{business_name}.js)
- ✅ SQL脚本
- ✅ 文档
3. 模板特性
- ✅ 支持Jinja2模板引擎
- ✅ 动态字段生成
- ✅ 权限控制集成
- ✅ 分页查询支持
- ✅ 表单验证集成
- ✅ 字典数据支持
- ✅ 查询条件动态生成
4. 数据库支持
- ✅ MySQL数据库表结构读取
- ✅ 字段类型自动映射
- ✅ 主键自动识别
- ✅ 自增字段识别
- ✅ 字段注释读取
- ✅ 表注释读取
5. API接口
- ✅ 表列表查询 (
GET /list)
- ✅ 数据库表列表 (
GET /db/list)
- ✅ 表详情查询 (
GET /{tableId})
- ✅ 表导入 (
POST /importTable)
- ✅ 表信息更新 (
PUT /{tableId})
- ✅ 表删除 (
DELETE /{tableIds})
- ✅ 代码预览 (
GET /preview/{tableId})
- ✅ 代码下载 (
GET /download/{table_name})
- ✅ 代码生成 (
GET /genCode/{table_name})
- ✅ 批量生成 (
GET /batchGenCode)
- ✅ 数据库同步 (
GET /synchDb/{table_name})
- ✅ 字段列表查询 (
GET /column/list)
- ✅ 数据导出 (
GET /export)
- ✅ 表信息查询 (
GET /tableInfo/{table_name})
6. 配置功能
- ✅ 作者配置
- ✅ 包名配置
- ✅ 表前缀配置
- ✅ 自动移除表前缀
- ✅ 模板分类支持
7. 代码规范
- ✅ Python代码规范
- ✅ 类型注解支持
- ✅ 文档字符串
- ✅ 异常处理
- ✅ 日志记录
- ✅ 权限验证
使用说明
1. 导入数据库表
# 通过API导入表
POST /tool/gen/importTable?tables=sys_user,sys_role
2. 配置生成参数
- 设置包名、模块名、业务名
- 配置字段属性(是否查询、编辑、列表显示等)
- 设置HTML控件类型
3. 生成代码
# 预览代码
GET /tool/gen/preview/{tableId}
# 下载代码
GET /tool/gen/download/{table_name}
# 批量生成
GET /tool/gen/batchGenCode?tables=sys_user,sys_role
4. 同步数据库
# 同步表结构
GET /tool/gen/synchDb/{table_name}
模板文件结构
ruoyi_generator/vm/
├── py/ # Python后端模板
│ ├── entity.py.vm # 实体类模板
│ ├── po.py.vm # 查询对象模板
│ ├── mapper.py.vm # 数据访问层模板
│ ├── service.py.vm # 业务逻辑层模板
│ └── controller.py.vm # 控制层模板
├── vue/ # Vue前端模板
│ └── index.vue.vm # 页面模板
├── js/ # JavaScript模板
│ └── api.js.vm # API接口模板
├── sql/ # SQL模板
│ └── menu.sql.vm # 菜单权限模板
└── README.md.vm # 说明文档模板
权限配置
tool:gen:list - 查询权限
tool:gen:query - 详情查询权限
tool:gen:add - 新增权限
tool:gen:edit - 编辑权限
tool:gen:remove - 删除权限
tool:gen:code - 代码生成权限
tool:gen:preview - 代码预览权限
tool:gen:export - 导出权限
技术栈
- 后端: Flask + SQLAlchemy + Jinja2
- 前端: Vue.js + Element UI
- 数据库: MySQL
- 模板引擎: Jinja2
- 权限控制: 基于注解的权限控制
扩展性
- 支持自定义模板
- 支持多种数据库
- 支持多种前端框架
- 支持自定义字段类型映射
- 支持自定义生成规则