代码生成优化
This commit is contained in:
@ -0,0 +1,72 @@
|
||||
package com.ruoyi.generator.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
|
||||
/**
|
||||
* 字段类型配置 由数据库字段的注释解析而来
|
||||
* 注释结构示例:{"title": "状态", "type": "dict", "value": "sys_common_status"} {"title": "登录时间", "type": "date"}
|
||||
*
|
||||
* @author ruoyi
|
||||
*
|
||||
*/
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class ColumnConfigInfo
|
||||
{
|
||||
/**
|
||||
* 属性标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 属性类型 dict(字典,value对应字典管理的字典类型), date(包括date)
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 属性值,参考数据类型,可为空
|
||||
*/
|
||||
private String value;
|
||||
|
||||
public ColumnConfigInfo()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public ColumnConfigInfo(String title, String type, String value)
|
||||
{
|
||||
super();
|
||||
this.title = title;
|
||||
this.type = type;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getTitle()
|
||||
{
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title)
|
||||
{
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type)
|
||||
{
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getValue()
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
}
|
@ -1,5 +1,8 @@
|
||||
package com.ruoyi.generator.domain;
|
||||
|
||||
import com.ruoyi.common.json.JSON;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
|
||||
/**
|
||||
* ry数据库表列信息
|
||||
*
|
||||
@ -15,6 +18,9 @@ public class ColumnInfo
|
||||
|
||||
/** 列描述 */
|
||||
private String columnComment;
|
||||
|
||||
/** 列配置 */
|
||||
private ColumnConfigInfo configInfo;
|
||||
|
||||
/** Java属性类型 */
|
||||
private String attrType;
|
||||
@ -50,9 +56,18 @@ public class ColumnInfo
|
||||
return columnComment;
|
||||
}
|
||||
|
||||
public void setColumnComment(String columnComment)
|
||||
public void setColumnComment(String columnComment) throws Exception
|
||||
{
|
||||
this.columnComment = columnComment;
|
||||
// 根据列描述解析列的配置信息
|
||||
if (StringUtils.isNotEmpty(columnComment) && columnComment.startsWith("{"))
|
||||
{
|
||||
this.configInfo = JSON.unmarshal(columnComment, ColumnConfigInfo.class);
|
||||
this.columnComment = configInfo.getTitle();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.columnComment = columnComment;
|
||||
}
|
||||
}
|
||||
|
||||
public String getAttrName()
|
||||
@ -84,4 +99,14 @@ public class ColumnInfo
|
||||
{
|
||||
this.attrType = attrType;
|
||||
}
|
||||
|
||||
public ColumnConfigInfo getConfigInfo()
|
||||
{
|
||||
return configInfo;
|
||||
}
|
||||
|
||||
public void setConfigInfo(ColumnConfigInfo configInfo)
|
||||
{
|
||||
this.configInfo = configInfo;
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public class GenUtils
|
||||
private static final String PROJECT_PATH = "main/java/com/ruoyi";
|
||||
|
||||
/** mybatis空间路径 */
|
||||
private static final String MYBATIS_PATH = "main/resources/mybatis";
|
||||
private static final String MYBATIS_PATH = "main/resources/mapper";
|
||||
|
||||
/** html空间路径 */
|
||||
private static final String TEMPLATES_PATH = "main/resources/templates";
|
||||
@ -69,8 +69,9 @@ public class GenUtils
|
||||
velocityContext.put("primaryKey", table.getPrimaryKey());
|
||||
velocityContext.put("className", table.getClassName());
|
||||
velocityContext.put("classname", table.getClassname());
|
||||
velocityContext.put("moduleName", GenUtils.getModuleName(packageName));
|
||||
velocityContext.put("moduleName", getModuleName(packageName));
|
||||
velocityContext.put("columns", table.getColumns());
|
||||
velocityContext.put("basePackage", getBasePackage(packageName));
|
||||
velocityContext.put("package", packageName);
|
||||
velocityContext.put("author", Global.getAuthor());
|
||||
velocityContext.put("datetime", DateUtils.getDate());
|
||||
@ -144,7 +145,7 @@ public class GenUtils
|
||||
|
||||
if (template.contains("ServiceImpl.java.vm"))
|
||||
{
|
||||
return javaPath + "service" + "/" + className + "ServiceImpl.java";
|
||||
return javaPath + "service" + "/" + "/impl/" + className + "ServiceImpl.java";
|
||||
}
|
||||
|
||||
if (template.contains("Controller.java.vm"))
|
||||
@ -190,6 +191,13 @@ public class GenUtils
|
||||
return moduleName;
|
||||
}
|
||||
|
||||
public static String getBasePackage(String packageName)
|
||||
{
|
||||
int lastIndex = packageName.lastIndexOf(".");
|
||||
String basePackage = StringUtils.substring(packageName, 0, lastIndex);
|
||||
return basePackage;
|
||||
}
|
||||
|
||||
public static String replaceKeyword(String keyword)
|
||||
{
|
||||
String keyName = keyword.replaceAll("(?:表|信息)", "");
|
||||
@ -224,6 +232,6 @@ public class GenUtils
|
||||
{
|
||||
System.out.println(StringUtils.convertToCamelCase("user_name"));
|
||||
System.out.println(replaceKeyword("岗位信息表"));
|
||||
System.out.println(getModuleName("com.ruoyi.system"));
|
||||
System.out.println(getBasePackage("com.ruoyi.system"));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user