Browse Source

代码生成器更新

dev
yujintao 6 years ago
parent
commit
2d7acada4f
  1. 47
      renren-cloud-generator/src/main/java/io/renren/utils/GenUtils.java

47
renren-cloud-generator/src/main/java/io/renren/utils/GenUtils.java

@ -37,7 +37,7 @@ import java.util.zip.ZipOutputStream;
/** /**
* 代码生成器 工具类 * 代码生成器 工具类
* *
* @author chenshun * @author chenshun
* @email sunlightcs@gmail.com * @email sunlightcs@gmail.com
*/ */
@ -58,7 +58,7 @@ public class GenUtils {
templates.add("template/add-or-update.vue.vm"); templates.add("template/add-or-update.vue.vm");
return templates; return templates;
} }
/** /**
* 生成代码 * 生成代码
*/ */
@ -75,7 +75,7 @@ public class GenUtils {
String className = tableToJava(tableEntity.getTableName(), config.getString("tablePrefix")); String className = tableToJava(tableEntity.getTableName(), config.getString("tablePrefix"));
tableEntity.setClassName(className); tableEntity.setClassName(className);
tableEntity.setClassname(StringUtils.uncapitalize(className)); tableEntity.setClassname(StringUtils.uncapitalize(className));
//列信息 //列信息
List<ColumnEntity> columsList = new ArrayList<>(); List<ColumnEntity> columsList = new ArrayList<>();
for(Map<String, String> column : columns){ for(Map<String, String> column : columns){
@ -84,12 +84,12 @@ public class GenUtils {
columnEntity.setDataType(column.get("dataType")); columnEntity.setDataType(column.get("dataType"));
columnEntity.setComments(column.get("columnComment")); columnEntity.setComments(column.get("columnComment"));
columnEntity.setExtra(column.get("extra")); columnEntity.setExtra(column.get("extra"));
//列名转换成Java属性名 //列名转换成Java属性名
String attrName = columnToJava(columnEntity.getColumnName()); String attrName = columnToJava(columnEntity.getColumnName());
columnEntity.setAttrName(attrName); columnEntity.setAttrName(attrName);
columnEntity.setAttrname(StringUtils.uncapitalize(attrName)); columnEntity.setAttrname(StringUtils.uncapitalize(attrName));
//列的数据类型,转换成Java类型 //列的数据类型,转换成Java类型
String attrType = config.getString(columnEntity.getDataType(), "unknowType"); String attrType = config.getString(columnEntity.getDataType(), "unknowType");
columnEntity.setAttrType(attrType); columnEntity.setAttrType(attrType);
@ -100,24 +100,24 @@ public class GenUtils {
if("PRI".equalsIgnoreCase(column.get("columnKey")) && tableEntity.getPk() == null){ if("PRI".equalsIgnoreCase(column.get("columnKey")) && tableEntity.getPk() == null){
tableEntity.setPk(columnEntity); tableEntity.setPk(columnEntity);
} }
columsList.add(columnEntity); columsList.add(columnEntity);
} }
tableEntity.setColumns(columsList); tableEntity.setColumns(columsList);
//没主键,则第一个字段为主键 //没主键,则第一个字段为主键
if(tableEntity.getPk() == null){ if(tableEntity.getPk() == null){
tableEntity.setPk(tableEntity.getColumns().get(0)); tableEntity.setPk(tableEntity.getColumns().get(0));
} }
//设置velocity资源加载器 //设置velocity资源加载器
Properties prop = new Properties(); Properties prop = new Properties();
prop.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); prop.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
Velocity.init(prop); Velocity.init(prop);
String main = config.getString("main" ); String main = config.getString("main" );
main = StringUtils.isBlank(main) ? config.getString("package" ) : main; main = StringUtils.isBlank(main) ? config.getString("package" ) : main;
//封装模板数据 //封装模板数据
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("tableName", tableEntity.getTableName()); map.put("tableName", tableEntity.getTableName());
@ -129,14 +129,7 @@ public class GenUtils {
map.put("columns", tableEntity.getColumns()); map.put("columns", tableEntity.getColumns());
map.put("hasBigDecimal", hasBigDecimal); map.put("hasBigDecimal", hasBigDecimal);
map.put("main", main); map.put("main", main);
map.put("package", config.getString("package" ));
String moduleName = config.getString("moduleName" );
if(StringUtils.isNotBlank(moduleName)){
map.put("package", config.getString("package" ) + "." + moduleName);
}else {
map.put("package", config.getString("package" ));
}
map.put("moduleName", config.getString("moduleName" )); map.put("moduleName", config.getString("moduleName" ));
map.put("author", config.getString("author")); map.put("author", config.getString("author"));
map.put("version", config.getString("version")); map.put("version", config.getString("version"));
@ -146,7 +139,7 @@ public class GenUtils {
VelocityContext context = new VelocityContext(map); VelocityContext context = new VelocityContext(map);
//获取模板列表 //获取模板列表
List<String> templates = getTemplates(); List<String> templates = getTemplates();
for(String template : templates){ for(String template : templates){
@ -154,7 +147,7 @@ public class GenUtils {
StringWriter sw = new StringWriter(); StringWriter sw = new StringWriter();
Template tpl = Velocity.getTemplate(template, "UTF-8"); Template tpl = Velocity.getTemplate(template, "UTF-8");
tpl.merge(context, sw); tpl.merge(context, sw);
try { try {
//添加到zip //添加到zip
zip.putNextEntry(new ZipEntry(getFileName(template, tableEntity.getClassName(), config.getString("package"), config.getString("moduleName")))); zip.putNextEntry(new ZipEntry(getFileName(template, tableEntity.getClassName(), config.getString("package"), config.getString("moduleName"))));
@ -166,15 +159,15 @@ public class GenUtils {
} }
} }
} }
/** /**
* 列名转换成Java属性名 * 列名转换成Java属性名
*/ */
public static String columnToJava(String columnName) { public static String columnToJava(String columnName) {
return WordUtils.capitalizeFully(columnName, new char[]{'_'}).replace("_", ""); return WordUtils.capitalizeFully(columnName, new char[]{'_'}).replace("_", "");
} }
/** /**
* 表名转换成Java类名 * 表名转换成Java类名
*/ */
@ -184,7 +177,7 @@ public class GenUtils {
} }
return columnToJava(tableName); return columnToJava(tableName);
} }
/** /**
* 获取配置信息 * 获取配置信息
*/ */
@ -202,7 +195,7 @@ public class GenUtils {
public static String getFileName(String template, String className, String packageName, String moduleName) { public static String getFileName(String template, String className, String packageName, String moduleName) {
String packagePath = "main" + File.separator + "java" + File.separator; String packagePath = "main" + File.separator + "java" + File.separator;
if (StringUtils.isNotBlank(packageName)) { if (StringUtils.isNotBlank(packageName)) {
packagePath += packageName.replace(".", File.separator) + File.separator + moduleName + File.separator; packagePath += packageName.replace(".", File.separator) + File.separator;
} }
if (template.contains("Entity.java.vm" )) { if (template.contains("Entity.java.vm" )) {
@ -234,7 +227,7 @@ public class GenUtils {
} }
if (template.contains("DTO.java.vm" )) { if (template.contains("DTO.java.vm" )) {
return moduleName + File.separator + "dto" + File.separator + className + "DTO.java"; return "dto" + File.separator + className + "DTO.java";
} }
if (template.contains("Dao.xml.vm" )) { if (template.contains("Dao.xml.vm" )) {

Loading…
Cancel
Save