|
11 | 11 | import java.io.IOException; |
12 | 12 | import java.io.Writer; |
13 | 13 | import java.time.LocalDate; |
14 | | -import java.util.ArrayList; |
15 | | -import java.util.HashMap; |
16 | | -import java.util.List; |
17 | | -import java.util.Map; |
| 14 | +import java.util.*; |
18 | 15 |
|
19 | 16 | /** |
20 | 17 | * 代码生成 |
@@ -61,7 +58,72 @@ private static List<String> getFrontTemplateNames() { |
61 | 58 | return templateNames; |
62 | 59 | } |
63 | 60 |
|
| 61 | + public static List<Map<String, Object>> preview(List<ColumnInfo> columns, GenConfig genConfig) { |
| 62 | + Map<String,Object> genMap = getGenMap(columns, genConfig); |
| 63 | + List<Map<String,Object>> genList = new ArrayList<>(); |
| 64 | + // 获取后端模版 |
| 65 | + List<String> templates = getAdminTemplateNames(); |
| 66 | + TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); |
| 67 | + for (String templateName : templates) { |
| 68 | + Map<String,Object> map = new HashMap<>(1); |
| 69 | + Template template = engine.getTemplate("generator/admin/"+templateName+".ftl"); |
| 70 | + map.put("content", template.render(genMap)); |
| 71 | + map.put("name", templateName); |
| 72 | + genList.add(map); |
| 73 | + } |
| 74 | + // 获取前端模版 |
| 75 | + templates = getFrontTemplateNames(); |
| 76 | + for (String templateName : templates) { |
| 77 | + Map<String,Object> map = new HashMap<>(1); |
| 78 | + Template template = engine.getTemplate("generator/front/"+templateName+".ftl"); |
| 79 | + map.put(templateName, template.render(genMap)); |
| 80 | + map.put("content", template.render(genMap)); |
| 81 | + map.put("name", templateName); |
| 82 | + genList.add(map); |
| 83 | + } |
| 84 | + return genList; |
| 85 | + } |
| 86 | + |
64 | 87 | public static void generatorCode(List<ColumnInfo> columnInfos, GenConfig genConfig) throws IOException { |
| 88 | + Map<String,Object> genMap = getGenMap(columnInfos, genConfig); |
| 89 | + TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); |
| 90 | + // 生成后端代码 |
| 91 | + List<String> templates = getAdminTemplateNames(); |
| 92 | + for (String templateName : templates) { |
| 93 | + Template template = engine.getTemplate("generator/admin/"+templateName+".ftl"); |
| 94 | + String filePath = getAdminFilePath(templateName,genConfig,genMap.get("className").toString()); |
| 95 | + |
| 96 | + assert filePath != null; |
| 97 | + File file = new File(filePath); |
| 98 | + |
| 99 | + // 如果非覆盖生成 |
| 100 | + if(!genConfig.getCover() && FileUtil.exist(file)){ |
| 101 | + continue; |
| 102 | + } |
| 103 | + // 生成代码 |
| 104 | + genFile(file, template, genMap); |
| 105 | + } |
| 106 | + |
| 107 | + // 生成前端代码 |
| 108 | + templates = getFrontTemplateNames(); |
| 109 | + for (String templateName : templates) { |
| 110 | + Template template = engine.getTemplate("generator/front/"+templateName+".ftl"); |
| 111 | + String filePath = getFrontFilePath(templateName,genConfig,genMap.get("changeClassName").toString()); |
| 112 | + |
| 113 | + assert filePath != null; |
| 114 | + File file = new File(filePath); |
| 115 | + |
| 116 | + // 如果非覆盖生成 |
| 117 | + if(!genConfig.getCover() && FileUtil.exist(file)){ |
| 118 | + continue; |
| 119 | + } |
| 120 | + // 生成代码 |
| 121 | + genFile(file, template, genMap); |
| 122 | + } |
| 123 | + } |
| 124 | + |
| 125 | + // 获取模版数据 |
| 126 | + private static Map<String,Object> getGenMap(List<ColumnInfo> columnInfos, GenConfig genConfig) { |
65 | 127 | // 存储模版字段数据 |
66 | 128 | Map<String,Object> genMap = new HashMap<>(16); |
67 | 129 | // 接口别名 |
@@ -165,7 +227,7 @@ public static void generatorCode(List<ColumnInfo> columnInfos, GenConfig genConf |
165 | 227 | // 表单显示 |
166 | 228 | listMap.put("formShow",column.getFormShow()); |
167 | 229 | // 表单组件类型 |
168 | | - listMap.put("formType",column.getFormType()); |
| 230 | + listMap.put("formType", StringUtils.isNotBlank(column.getFormType()) ? column.getFormType() : "Input"); |
169 | 231 | // 小写开头的字段名称 |
170 | 232 | listMap.put("changeColumnName",changeColumnName); |
171 | 233 | //大写开头的字段名称 |
@@ -215,40 +277,7 @@ public static void generatorCode(List<ColumnInfo> columnInfos, GenConfig genConf |
215 | 277 | genMap.put("betweens",betweens); |
216 | 278 | // 保存非空字段信息 |
217 | 279 | genMap.put("isNotNullColumns",isNotNullColumns); |
218 | | - TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); |
219 | | - // 生成后端代码 |
220 | | - List<String> templates = getAdminTemplateNames(); |
221 | | - for (String templateName : templates) { |
222 | | - Template template = engine.getTemplate("generator/admin/"+templateName+".ftl"); |
223 | | - String filePath = getAdminFilePath(templateName,genConfig,className); |
224 | | - |
225 | | - assert filePath != null; |
226 | | - File file = new File(filePath); |
227 | | - |
228 | | - // 如果非覆盖生成 |
229 | | - if(!genConfig.getCover() && FileUtil.exist(file)){ |
230 | | - continue; |
231 | | - } |
232 | | - // 生成代码 |
233 | | - genFile(file, template, genMap); |
234 | | - } |
235 | | - |
236 | | - // 生成前端代码 |
237 | | - templates = getFrontTemplateNames(); |
238 | | - for (String templateName : templates) { |
239 | | - Template template = engine.getTemplate("generator/front/"+templateName+".ftl"); |
240 | | - String filePath = getFrontFilePath(templateName,genConfig,genMap.get("changeClassName").toString()); |
241 | | - |
242 | | - assert filePath != null; |
243 | | - File file = new File(filePath); |
244 | | - |
245 | | - // 如果非覆盖生成 |
246 | | - if(!genConfig.getCover() && FileUtil.exist(file)){ |
247 | | - continue; |
248 | | - } |
249 | | - // 生成代码 |
250 | | - genFile(file, template, genMap); |
251 | | - } |
| 280 | + return genMap; |
252 | 281 | } |
253 | 282 |
|
254 | 283 | /** |
|
0 commit comments