# idea-ruoyi-code-create-groovy **Repository Path**: fang/idea-ruoyi-code-create-groovy ## Basic Information - **Project Name**: idea-ruoyi-code-create-groovy - **Description**: idea数据源创建代码脚本 - **Primary Language**: Groovy - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-05 - **Last Updated**: 2024-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 代码生成脚本 ========== 以下路径均为IDEA默认安装路径,如非默认安装请自行调整为自己的安装路径 将本目录的脚本复制到 C:\Users\[登录用户名]\AppData\Roaming\JetBrains\IntelliJIdea2021.2\extensions\com.intellij.database\schema 即可从数据源生成对应的代码了 参考资料 ======= - C:\Program Files\JetBrains\IntelliJ IDEA 2021.2.3\plugins\DatabaseTools\lib\database-impl.jar - https://gist.github.com/surgicalcoder/b1f82d3e7334e6a39d7f271b52c910e4 注解相关 ======= 扩展字段 ------- - frontHome; 出现在表注释中, 前端首页页面类型 - frontName: 前端展示名 - javaType: 指定后端接收字段 - frontType: text,datetime,date,upload,textarea - uploadCount: 上传文件数限制,配合 frontType:upload - ignoreInList: 是否列表页忽略该字段, 一般不需要显示的字段, 例如: 富媒体,上传 等;bool, 默认为false 不填; 如果写了就是 true - foreign: 外联表书记; example foreign:example_category.id~title (tree关联); - tree: 表,后端生成tree相关接口, 例如: "tree:id~title~parent_id" - option: 表,后端生成option接口, 例如: "option:id~title" - uploadCount: 上传文件数量; 配合frontType为upload使用 - isFilter: 是否为条件过滤字段; 类型为bool true显示再条件筛选中 TODO ===== - 一对多的编辑支持; 常见模型; 商品模型属性关联 - 多对多的输入扩展; 常见电商销售属性动态生成 - 多对多关联扩展; 常见tag标签多对多的关联操作 - 密码类型支持 example ======= def calcFields(table) { def primaryKey = DasUtil.getPrimaryKey(table) DasUtil.getColumns(table).collect { col -> def spec = Case.LOWER.apply(col.getDasType().getSpecification()) def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value [ name : javaName(col.getName(), false), type : typeStr, annos : "", comment : col.getComment(), isPk : primaryKey != null && DasUtil.containsName(col.getName(), primaryKey.getColumnsRef()), isAuto : DasUtil.isAutoGenerated(col), isIndex : DasUtil.isIndexColumn(col), isFK : DasUtil.isForeign(col), nullable : col.isNotNull() ] } }