完成 do 模板的生成

This commit is contained in:
YunaiV
2021-02-02 01:07:11 +08:00
parent 6c5c32c845
commit 528d2a9bca
5 changed files with 32 additions and 38 deletions

View File

@ -1,27 +0,0 @@
package cn.iocoder.dashboard.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 通用状态枚举
*
* @author 芋道源码
*/
@Getter
@AllArgsConstructor
public enum OldCommonStatusEnum {
ENABLE("0", "开启"),
DISABLE("1", "关闭");
/**
* 状态值
*/
private final String status;
/**
* 状态名
*/
private final String name;
}

View File

@ -50,6 +50,10 @@ public class ToolCodegenBuilder {
.put("content", ToolCodegenColumnHtmlTypeEnum.EDITOR)
.build();
/**
* {@link BaseDO} 的字段
*/
public static final Set<String> BASE_DO_FIELDS = new HashSet<>();
/**
* 新增操作,不需要传递的字段
*/
@ -82,14 +86,13 @@ public class ToolCodegenBuilder {
.build();
static {
Arrays.stream(BaseDO.class.getDeclaredFields()).forEach(field -> BASE_DO_FIELDS.add(field.getName()));
// 处理 OPERATION 相关的字段
Arrays.stream(BaseDO.class.getDeclaredFields()).forEach(field -> {
CREATE_OPERATION_EXCLUDE_COLUMN.add(field.getName());
UPDATE_OPERATION_EXCLUDE_COLUMN.add(field.getName());
LIST_OPERATION_EXCLUDE_COLUMN.add(field.getName());
LIST_OPERATION_RESULT_EXCLUDE_COLUMN.add(field.getName());
});
CREATE_OPERATION_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS);
UPDATE_OPERATION_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS);
LIST_OPERATION_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS);
LIST_OPERATION_EXCLUDE_COLUMN.remove("create_time"); // 创建时间,还是可能需要传递的
LIST_OPERATION_RESULT_EXCLUDE_COLUMN.addAll(BASE_DO_FIELDS);
LIST_OPERATION_RESULT_EXCLUDE_COLUMN.remove("create_time"); // 创建时间,还是需要返回的
}

View File

@ -3,6 +3,7 @@ package cn.iocoder.dashboard.modules.tool.service.codegen.impl;
import cn.hutool.extra.template.TemplateConfig;
import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil;
import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
import org.springframework.stereotype.Component;
@ -37,6 +38,10 @@ public class ToolCodegenEngine {
Map<String, Object> bindingMap = new HashMap<>();
bindingMap.put("table", table);
bindingMap.put("columns", columns);
bindingMap.put("basePackage", "cn.iocoder.dashboard.modules"); // TODO 基础包
// DO 类,独有字段
bindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS);
bindingMap.put("baseDOClassName", BaseDO.class.getName());
String result = templateEngine.getTemplate("codegen/dal/do.vm").render(bindingMap);
System.out.println(result);
}