From aa79a2b56155cb6e975b9107f250ce3b1b1d4694 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?MOSHOW=E9=83=91=E9=94=B4?=
2.=E4=BC=98=E5=8C=96=E5=AF=B9fulltext/i?=
=?UTF-8?q?ndex=E5=85=B3=E9=94=AE=E5=AD=97=E7=9A=84=E5=A4=84=E7=90=86?=
=?UTF-8?q?=EF=BC=88=E6=84=9F=E8=B0=A2@WEGFan=E7=9A=84=E5=8F=8D=E9=A6=88?=
=?UTF-8?q?=EF=BC=89=E3=80=82
3.=E6=96=B0=E5=A2=9E=E6=97=A5=E6=9C=9F?=
=?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E8=BD=AC=E6=8D=A2=E9=80=89=E6=8B=A9?=
=?UTF-8?q?=EF=BC=88=E6=84=9F=E8=B0=A2@qingkediguo=E7=9A=84=E5=BB=BA?=
=?UTF-8?q?=E8=AE=AE=EF=BC=89=E3=80=82
4.=E6=96=B0=E5=A2=9E=E6=98=AF?=
=?UTF-8?q?=E5=90=A6=E5=8C=85=E8=A3=85=E7=B1=BB=E5=9E=8B=E7=9A=84=E8=BD=AC?=
=?UTF-8?q?=E6=8D=A2=E9=80=89=E6=8B=A9=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 1 +
.../system/generator/entity/ParamInfo.java | 8 +++
.../system/generator/util/TableParseUtil.java | 24 ++++----
.../templates/common/common-import.ftl | 2 +-
.../src/main/resources/templates/index.ftl | 61 +++++++++++++------
pom.xml | 2 +-
6 files changed, 67 insertions(+), 31 deletions(-)
diff --git a/README.md b/README.md
index 3f3d33a..a870f91 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,7 @@
|更新日期|更新内容|
|----|----|
+|20201020|1.修复mapper2 insert代码问题(感谢@mXiaoWan的PR)
2.优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)。
3.新增日期类型的转换选择(感谢@qingkediguo的建议)。
4.新增是否包装类型的转换选择。|
|20200628|优化Util下的BeanUtil,支持更多map.put的操作。整合CRUD模板到SQL(CRUD)模板。|
|20200621|修复FreemarkerUtil的Path问题导致JAR包运行时无法获取template的问题。|
|20200525|1.一些fix,关于封装工具类以及layui模板优化等.
2.优化表备注的获取逻辑.
3.生成时间格式改为yyyy-MM-dd,移除具体的时间,只保留日期|
diff --git a/generator-web/src/main/java/com/softdev/system/generator/entity/ParamInfo.java b/generator-web/src/main/java/com/softdev/system/generator/entity/ParamInfo.java
index 459d17b..9fc29ed 100644
--- a/generator-web/src/main/java/com/softdev/system/generator/entity/ParamInfo.java
+++ b/generator-web/src/main/java/com/softdev/system/generator/entity/ParamInfo.java
@@ -14,10 +14,18 @@ public class ParamInfo {
private String authorName;
private String packageName;
private String returnUtil;
+ /**命名转换规则*/
private String nameCaseType;
+ /**tinyint转换类型*/
private String tinyintTransType;
+ /**时间转换类型*/
+ private String timeTransType;
+ /**数据类型:ddl-sql json*/
private String dataType;
+ /**是否启用swagger*/
private boolean swagger;
+ /**是否启用包装类型*/
+ private boolean packageType;
@Data
public static class NAME_CASE_TYPE {
diff --git a/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java b/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java
index dc8e820..57d2675 100644
--- a/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java
+++ b/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java
@@ -36,7 +36,6 @@ public class TableParseUtil {
//process the param
String tableSql = paramInfo.getTableSql();
String nameCaseType = paramInfo.getNameCaseType();
- String tinyintTransType = paramInfo.getTinyintTransType();
if (tableSql == null || tableSql.trim().length() == 0) {
throw new CodeGenerateException("Table structure can not be empty. 表结构不能为空。");
@@ -152,8 +151,10 @@ public class TableParseUtil {
// 2018-11-8 zhengkai 修复tornadoorz反馈的KEY FK_permission_id (permission_id),KEY FK_role_id (role_id)情况
// 2019-2-22 zhengkai 要在条件中使用复杂的表达式
// 2019-4-29 zhengkai 优化对普通和特殊storage关键字的判断(感谢@AhHeadFloating的反馈 )
- boolean specialFlag = (!columnLine.contains("key ") && !columnLine.contains("constraint") && !columnLine.contains("using") && !columnLine.contains("unique")
+ // 2020-10-20 zhengkai 优化对fulltext/index关键字的处理(感谢@WEGFan的反馈)
+ boolean specialFlag = (!columnLine.contains("key ") && !columnLine.contains("constraint") && !columnLine.contains("using") && !columnLine.contains("unique ")
&& !(columnLine.contains("primary ") && columnLine.indexOf("storage") + 3 > columnLine.indexOf("("))
+ && !columnLine.contains("fulltext ") && !columnLine.contains("index ")
&& !columnLine.contains("pctincrease")
&& !columnLine.contains("buffer_pool") && !columnLine.contains("tablespace")
&& !(columnLine.contains("primary ") && i > 3));
@@ -190,19 +191,20 @@ public class TableParseUtil {
//2018-9-16 zhengk 补充char/clob/blob/json等类型,如果类型未知,默认为String
//2018-11-22 lshz0088 处理字段类型的时候,不严谨columnLine.contains(" int") 类似这种的,可在前后适当加一些空格之类的加以区分,否则当我的字段包含这些字符的时候,产生类型判断问题。
//2020-05-03 MOSHOW.K.ZHENG 优化对所有类型的处理
+ //2020-10-20 zhengkai 新增包装类型的转换选择
if (columnLine.contains(" tinyint")) {
//20191115 MOSHOW.K.ZHENG 支持对tinyint的特殊处理
- fieldClass = tinyintTransType;
+ fieldClass = paramInfo.getTinyintTransType();
} else if (columnLine.contains(" int") || columnLine.contains(" smallint")) {
- fieldClass = Integer.class.getSimpleName();
+ fieldClass = (paramInfo.isPackageType())?Integer.class.getSimpleName():"int";
} else if (columnLine.contains(" bigint")) {
- fieldClass = Long.class.getSimpleName();
+ fieldClass = (paramInfo.isPackageType())?Long.class.getSimpleName():"long";
} else if (columnLine.contains(" float")) {
- fieldClass = Float.class.getSimpleName();
+ fieldClass = (paramInfo.isPackageType())?Float.class.getSimpleName():"float";
} else if (columnLine.contains(" double")) {
- fieldClass = Double.class.getSimpleName();
+ fieldClass = (paramInfo.isPackageType())?Double.class.getSimpleName():"double";
} else if (columnLine.contains(" time") || columnLine.contains(" date") || columnLine.contains(" datetime") || columnLine.contains(" timestamp")) {
- fieldClass = Date.class.getSimpleName();
+ fieldClass = paramInfo.getTimeTransType();
} else if (columnLine.contains(" varchar") || columnLine.contains(" text") || columnLine.contains(" char")
|| columnLine.contains(" clob") || columnLine.contains(" blob") || columnLine.contains(" json")) {
fieldClass = String.class.getSimpleName();
@@ -227,9 +229,9 @@ public class TableParseUtil {
}
//数字范围9位及一下用Integer,大的用Long
if (length <= 9) {
- fieldClass = Integer.class.getSimpleName();
+ fieldClass = (paramInfo.isPackageType())?Integer.class.getSimpleName():"int";
} else {
- fieldClass = Long.class.getSimpleName();
+ fieldClass = (paramInfo.isPackageType())?Long.class.getSimpleName():"long";
}
} else {
//有小数位数一律使用BigDecimal
@@ -240,7 +242,7 @@ public class TableParseUtil {
}
} else if (columnLine.contains(" boolean")) {
//20190910 MOSHOW.K.ZHENG 新增对boolean的处理(感谢@violinxsc的反馈)以及修复tinyint类型字段无法生成boolean类型问题(感谢@hahaYhui的反馈)
- fieldClass = Boolean.class.getSimpleName();
+ fieldClass = (paramInfo.isPackageType())?Boolean.class.getSimpleName():"boolean";
} else {
fieldClass = String.class.getSimpleName();
}
diff --git a/generator-web/src/main/resources/templates/common/common-import.ftl b/generator-web/src/main/resources/templates/common/common-import.ftl
index 3e6c424..dc68c46 100644
--- a/generator-web/src/main/resources/templates/common/common-import.ftl
+++ b/generator-web/src/main/resources/templates/common/common-import.ftl
@@ -53,7 +53,7 @@
diff --git a/generator-web/src/main/resources/templates/index.ftl b/generator-web/src/main/resources/templates/index.ftl
index c50975f..ca9ec36 100644
--- a/generator-web/src/main/resources/templates/index.ftl
+++ b/generator-web/src/main/resources/templates/index.ftl
@@ -77,8 +77,11 @@
"dataType":$("#dataType").val(),
"tinyintTransType":$("#tinyintTransType").val(),
"nameCaseType":$("#nameCaseType").val(),
- "swagger":$("#isSwagger").val()
+ "swagger":$("#isSwagger").val(),
+ "timeTransType":$("#timeTransType").val(),
+ "packageType":$("#packageType").val()
};
+ console.log($("#timeTransType").val());
$.ajax({
type: 'POST',
url: base_url + "/genCode",
@@ -225,20 +228,6 @@