diff --git a/README.md b/README.md index 97131d3..b16d9f5 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ |更新日期|更新内容| |-|-| +|20200503|1.优化对特殊字符的处理,对于包含#和$等特殊字符的,在模板使用井和¥代替便可,escapeString方法会自动处理
2.优化mybatisplus实体类相关(感谢@chunchengmeigui的反馈) 3.修优化对所有类型的判断(感谢@cnlw的反馈) 4.移除swagger-entity,该功能已经包含在‘swagger-ui’的下拉选项中 5.升级hutool和lombok版本| |20200306|1.提交一套layuimini+mybatisplus的模板. 2.修复mybatisplus一些相关问题. | |20200206|1.新增历史记录功能,自动保存最近生成的对象 2.新增swagger开关选项和修复@Column带name参数(感谢@liuyu-struggle的建议) 3.去除mybatis模板中的方括号[]和修改模板里的类注释样式(感谢@gaohanghang的PR)| |20191229|1.修复bejson安全防护策略拦截问题(感谢@liangbintao和@1808083642的反馈) 2.优化字段名含date字符串的处理(感谢@smilexzh的反馈) 3.控制台动态输出项目访问地址(感谢@gaohanghang的提交)| diff --git a/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java b/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java index b6e5b60..b29dce4 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java +++ b/generator-web/src/main/java/com/softdev/system/generator/service/GeneratorServiceImpl.java @@ -49,11 +49,11 @@ public class GeneratorServiceImpl implements GeneratorService { //beetsql result.put("beetlmd", freemarkerTool.processString("code-generator/beetlsql/beetlmd.ftl", params)); result.put("beetlentity", freemarkerTool.processString("code-generator/beetlsql/beetlentity.ftl", params)); - result.put("beetlentitydto", freemarkerTool.processString("code-generator/beetlsql/beetlentitydto.ftl", params)); result.put("beetlcontroller", freemarkerTool.processString("code-generator/beetlsql/beetlcontroller.ftl", params)); //mybatis plus result.put("pluscontroller", freemarkerTool.processString("code-generator/mybatis-plus/pluscontroller.ftl", params)); result.put("plusmapper", freemarkerTool.processString("code-generator/mybatis-plus/plusmapper.ftl", params)); + result.put("plusentity", freemarkerTool.processString("code-generator/mybatis-plus/plusentity.ftl", params)); //util result.put("util", freemarkerTool.processString("code-generator/util/util.ftl", params)); result.put("json", freemarkerTool.processString("code-generator/util/json.ftl", params)); diff --git a/generator-web/src/main/java/com/softdev/system/generator/util/FreemarkerTool.java b/generator-web/src/main/java/com/softdev/system/generator/util/FreemarkerTool.java index dedbf0b..7d12237 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/util/FreemarkerTool.java +++ b/generator-web/src/main/java/com/softdev/system/generator/util/FreemarkerTool.java @@ -37,7 +37,13 @@ public class FreemarkerTool { template.process(model, result); return result.toString(); } - + /** + * 传入需要转义的字符串进行转义 + * 20200503 zhengkai.blog.csdn.net + * */ + public String escapeString(String originStr){ + return originStr.replaceAll("井","\\#").replaceAll("¥","\\$"); + } /** * process String * @@ -49,9 +55,10 @@ public class FreemarkerTool { */ public String processString(String templateName, Map params) throws IOException, TemplateException { - + //获取对应的模板 Template template = configuration.getTemplate(templateName); - String htmlText = processTemplateIntoString(template, params); + //处理为template并进行转义 + String htmlText = escapeString(processTemplateIntoString(template, params)); return htmlText; } 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 907b55b..15b1233 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 @@ -194,20 +194,25 @@ public class TableParseUtil { String fieldClass = Object.class.getSimpleName(); //2018-9-16 zhengk 补充char/clob/blob/json等类型,如果类型未知,默认为String //2018-11-22 lshz0088 处理字段类型的时候,不严谨columnLine.contains(" int") 类似这种的,可在前后适当加一些空格之类的加以区分,否则当我的字段包含这些字符的时候,产生类型判断问题。 - if (columnLine.contains(" int") || columnLine.contains("smallint")) { + //2020-05-03 MOSHOW.K.ZHENG 优化对所有类型的处理 + if (columnLine.contains(" tinyint") ) { + //20191115 MOSHOW.K.ZHENG 支持对tinyint的特殊处理 + fieldClass=tinyintTransType; + } + else if (columnLine.contains(" int") || columnLine.contains(" smallint")) { fieldClass = Integer.class.getSimpleName(); - } else if (columnLine.contains("bigint")) { + } else if (columnLine.contains(" bigint")) { fieldClass = Long.class.getSimpleName(); - } else if (columnLine.contains("float")) { + } else if (columnLine.contains(" float")) { fieldClass = Float.class.getSimpleName(); - } else if (columnLine.contains("double")) { + } else if (columnLine.contains(" double")) { fieldClass = Double.class.getSimpleName(); - } else if (columnLine.contains("time") || columnLine.contains(" date") || columnLine.contains("datetime") || columnLine.contains("timestamp")) { + } else if (columnLine.contains(" time") || columnLine.contains(" date") || columnLine.contains(" datetime") || columnLine.contains(" timestamp")) { fieldClass = Date.class.getSimpleName(); - } else if (columnLine.contains("varchar") || columnLine.contains(" text")|| columnLine.contains("char") - || columnLine.contains("clob")||columnLine.contains("blob")||columnLine.contains("json")) { + } else if (columnLine.contains(" varchar") || columnLine.contains(" text")|| columnLine.contains(" char") + || columnLine.contains(" clob")||columnLine.contains(" blob")||columnLine.contains(" json")) { fieldClass = String.class.getSimpleName(); - } else if (columnLine.contains("decimal")||columnLine.contains(" number")) { + } else if (columnLine.contains(" decimal")||columnLine.contains(" number")) { //2018-11-22 lshz0088 建议对number类型增加int,long,BigDecimal的区分判断 //如果startKh大于等于0,则表示有设置取值范围 int startKh=columnLine.indexOf("("); @@ -239,12 +244,9 @@ public class TableParseUtil { }else{ fieldClass = BigDecimal.class.getSimpleName(); } - } else if (columnLine.contains("boolean")) { + } else if (columnLine.contains(" boolean")) { //20190910 MOSHOW.K.ZHENG 新增对boolean的处理(感谢@violinxsc的反馈)以及修复tinyint类型字段无法生成boolean类型问题(感谢@hahaYhui的反馈) fieldClass = Boolean.class.getSimpleName(); - } else if (columnLine.contains("tinyint") ) { - //20191115 MOSHOW.K.ZHENG 支持对tinyint的特殊处理 - fieldClass=tinyintTransType; } else { fieldClass = String.class.getSimpleName(); } diff --git a/generator-web/src/main/resources/rebel.xml b/generator-web/src/main/resources/rebel.xml new file mode 100644 index 0000000..beab42a --- /dev/null +++ b/generator-web/src/main/resources/rebel.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlentity.ftl b/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlentity.ftl index 381f3ae..e20de00 100644 --- a/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlentity.ftl +++ b/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlentity.ftl @@ -8,7 +8,8 @@ import java.util.List; * @author ${authorName} * @date ${.now?string('yyyy-MM-dd HH:mm:ss')} */ -@Data +@Data<#if swagger?exists && swagger==true> +@ApiModel("${classInfo.classComment}") public class ${classInfo.className} implements Serializable { private static final long serialVersionUID = 1L; @@ -17,7 +18,8 @@ public class ${classInfo.className} implements Serializable { <#list classInfo.fieldList as fieldItem > /** * ${fieldItem.fieldComment} - */ + */<#if swagger?exists && swagger==true> + @ApiModelProperty("${fieldItem.fieldComment}") private ${fieldItem.fieldClass} ${fieldItem.fieldName}; diff --git a/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlentitydto.ftl b/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlentitydto.ftl deleted file mode 100644 index 9665c5c..0000000 --- a/generator-web/src/main/resources/templates/code-generator/beetlsql/beetlentitydto.ftl +++ /dev/null @@ -1,27 +0,0 @@ -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.Serializable; -import lombok.Data; -import java.util.Date; -import java.util.List; - -/** - * @description ${classInfo.classComment} - * @author ${authorName} - * @date ${.now?string('yyyy-MM-dd HH:mm:ss')} - */ -@Data -@ApiModel("${classInfo.classComment}") -public class ${classInfo.className}DTO { - -<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> -<#list classInfo.fieldList as fieldItem > - @ApiModelProperty("${fieldItem.fieldComment}") - private ${fieldItem.fieldClass} ${fieldItem.fieldName}; - - - public ${classInfo.className}() { - } - - -} diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusentity.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusentity.ftl new file mode 100644 index 0000000..887dd2a --- /dev/null +++ b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusentity.ftl @@ -0,0 +1,35 @@ +package ${packageName}.entity; + +import lombok.Data; +import java.util.Date; +import java.util.List; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +/** + * @description ${classInfo.classComment} + * @author ${authorName} + * @date ${.now?string('yyyy-MM-dd HH:mm:ss')} + */ +@Data +<#if swagger?exists && swagger==true>@ApiModel("${classInfo.classComment}") +public class ${classInfo.className} implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.AUTO) +<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> +<#list classInfo.fieldList as fieldItem > + /** + * ${fieldItem.fieldComment} + */<#if swagger?exists && swagger==true> + @ApiModelProperty("${fieldItem.fieldComment}") + private ${fieldItem.fieldClass} ${fieldItem.fieldName}; + + + public ${classInfo.className}() { + } + + +} diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl index c34443d..1b7901b 100644 --- a/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl +++ b/generator-web/src/main/resources/templates/code-generator/mybatis-plus/plusmapper.ftl @@ -2,6 +2,7 @@ package ${packageName}.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; import ${packageName}.entity.${classInfo.className}; /** @@ -12,6 +13,25 @@ import ${packageName}.entity.${classInfo.className}; @Mapper public interface ${classInfo.className}Mapper extends BaseMapper<${classInfo.className}> { + @Select( + "") + List<${classInfo.className}> pageAll(${classInfo.className} queryParamDTO); + @Select("") + int countAll(${classInfo.className} queryParamDTO); } diff --git a/generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl b/generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl index cac62d7..cf70761 100644 --- a/generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl +++ b/generator-web/src/main/resources/templates/code-generator/ui/layui-edit.ftl @@ -6,8 +6,8 @@ - - + +