Bladeren bron

mybatis自动生成工具调整

songxinlu 3 jaren geleden
bovenliggende
commit
ff3663a7b1

+ 10 - 10
gateway-service/src/main/java/com/lantone/filter/AuthGlobalFilter.java

@@ -59,22 +59,22 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
         if (StringUtils.endsWithIgnoreCase(path, URI)) {
             return chain.filter(exchange);
         }
+        //2、白名单无需权限判断
+        if (isExclusionUrl(path)) {
+            return chain.filter(exchange);
+        }
         String headerToken = request.getHeaders().getFirst("Authorization");
-        //2、只要带上了token, 就需要判断Token是否有效
+        //3、只要带上了token, 就需要判断Token是否有效
         if (!StringUtils.isEmpty(headerToken)) {
             headerToken = headerToken.replaceFirst("Bearer ", "");
             if (!tokenFacade.verifyToken(headerToken, 1)) {
                 return getVoidMono(response, 401, "token无效");
             }
-        }
-        //3、白名单无需权限判断
-        if (isExclusionUrl(path)) {
-            return chain.filter(exchange);
-        }
-        //4、判断请求的URL是否有权限
-        boolean permission = hasPermission(headerToken, path);
-        if (!permission) {
-            return getVoidMono(response, 403, "无访问权限");
+            //4、判断请求的URL是否有权限
+            boolean permission = hasPermission(headerToken, path);
+            if (!permission) {
+                return getVoidMono(response, 403, "无访问权限");
+            }
         }
         return chain.filter(exchange);
     }

+ 0 - 19
security-center/src/main/resources/freemarker/basemapper.java.ftl

@@ -1,19 +0,0 @@
-package ${package.Mapper}.base;
-
-import ${package.Mapper}.${table.mapperName};
-
-/**
- * <p>
- * ${table.comment!} Mapper 接口
- * </p>
- *
- * @author ${author}
- <#--* @since ${date}-->
- */
-<#if kotlin>
-interface ${table.mapperName} : ${superMapperClass}<${entity}>
-<#else>
-public interface Base${table.mapperName} extends ${table.mapperName} {
-
-}
-</#if>

+ 0 - 39
security-center/src/main/resources/freemarker/basemapper.xml.ftl

@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="${package.Mapper}.${table.mapperName}">
-
-<#if enableCache>
-    <!-- 开启二级缓存 -->
-    <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
-
-</#if>
-<#if baseResultMap>
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
-<#list table.fields as field>
-<#if field.keyFlag><#--生成主键排在第一位-->
-        <id column="${field.name}" property="${field.propertyName}" />
-</#if>
-</#list>
-<#list table.commonFields as field><#--生成公共字段 -->
-    <result column="${field.name}" property="${field.propertyName}" />
-</#list>
-<#list table.fields as field>
-<#if !field.keyFlag><#--生成普通字段 -->
-        <result column="${field.name}" property="${field.propertyName}" />
-</#if>
-</#list>
-    </resultMap>
-
-</#if>
-<#if baseColumnList>
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-<#list table.commonFields as field>
-        ${field.name},
-</#list>
-        ${table.fieldNames}
-    </sql>
-
-</#if>
-</mapper>

+ 6 - 6
security-center/src/main/resources/freemarker/mapper.java.ftl

@@ -1,20 +1,20 @@
 package ${package.Mapper};
 
-import ${package.Entity}.${entity};
-import ${superMapperClassPackage};
+import ${package.Mapper}.parent.${table.mapperName}Parent;
 
 /**
  * <p>
- * ${table.comment!} Mapper 接口
- * </p>
+    * ${table.comment!} Mapper 接口
+    * </p>
  *
  * @author ${author}
- <#--* @since ${date}-->
+<#--* @since ${date}-->
  */
 <#if kotlin>
 interface ${table.mapperName} : ${superMapperClass}<${entity}>
 <#else>
-public interface ${table.mapperName} extends ${superMapperClass}<${entity}> {
+public interface ${table.mapperName} extends ${table.mapperName}Parent {
 
 }
 </#if>
+

+ 18 - 18
security-center/src/main/resources/freemarker/mapper.xml.ftl

@@ -7,25 +7,25 @@
     <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
 
 </#if>
-<#--<#if baseResultMap>-->
-    <#--<!-- 通用查询映射结果 &ndash;&gt;-->
-    <#--<resultMap id="BaseResultMap" type="${package.Entity}.${entity}">-->
-<#--<#list table.fields as field>-->
-<#--<#if field.keyFlag>&lt;#&ndash;生成主键排在第一位&ndash;&gt;-->
-        <#--<id column="${field.name}" property="${field.propertyName}" />-->
-<#--</#if>-->
-<#--</#list>-->
-<#--<#list table.commonFields as field>&lt;#&ndash;生成公共字段 &ndash;&gt;-->
-    <#--<result column="${field.name}" property="${field.propertyName}" />-->
-<#--</#list>-->
-<#--<#list table.fields as field>-->
-<#--<#if !field.keyFlag>&lt;#&ndash;生成普通字段 &ndash;&gt;-->
-        <#--<result column="${field.name}" property="${field.propertyName}" />-->
-<#--</#if>-->
-<#--</#list>-->
-    <#--</resultMap>-->
+<#if baseResultMap>
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
+<#list table.fields as field>
+<#if field.keyFlag><#--生成主键排在第一位-->
+        <id column="${field.name}" property="${field.propertyName}" />
+</#if>
+</#list>
+<#list table.commonFields as field><#--生成公共字段 -->
+    <result column="${field.name}" property="${field.propertyName}" />
+</#list>
+<#list table.fields as field>
+<#if !field.keyFlag><#--生成普通字段 -->
+        <result column="${field.name}" property="${field.propertyName}" />
+</#if>
+</#list>
+    </resultMap>
 
-<#--</#if>-->
+</#if>
 <#if baseColumnList>
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">

+ 39 - 0
security-center/src/main/resources/freemarker/mapperExt.xml.ftl

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="${package.Mapper}.${table.mapperName}">
+
+<#if enableCache>
+    <!-- 开启二级缓存 -->
+    <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
+
+</#if>
+<#--<#if baseResultMap>-->
+    <#--<!-- 通用查询映射结果 &ndash;&gt;-->
+    <#--<resultMap id="BaseResultMap" type="${package.Entity}.${entity}">-->
+<#--<#list table.fields as field>-->
+<#--<#if field.keyFlag>&lt;#&ndash;生成主键排在第一位&ndash;&gt;-->
+        <#--<id column="${field.name}" property="${field.propertyName}" />-->
+<#--</#if>-->
+<#--</#list>-->
+<#--<#list table.commonFields as field>&lt;#&ndash;生成公共字段 &ndash;&gt;-->
+    <#--<result column="${field.name}" property="${field.propertyName}" />-->
+<#--</#list>-->
+<#--<#list table.fields as field>-->
+<#--<#if !field.keyFlag>&lt;#&ndash;生成普通字段 &ndash;&gt;-->
+        <#--<result column="${field.name}" property="${field.propertyName}" />-->
+<#--</#if>-->
+<#--</#list>-->
+    <#--</resultMap>-->
+
+<#--</#if>-->
+<#if baseColumnList>
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+<#list table.commonFields as field>
+        ${field.name},
+</#list>
+        ${table.fieldNames}
+    </sql>
+
+</#if>
+</mapper>

+ 20 - 0
security-center/src/main/resources/freemarker/mapperParent.java.ftl

@@ -0,0 +1,20 @@
+package ${package.Mapper}.parent;
+
+import ${package.Entity}.${entity};
+import ${superMapperClassPackage};
+
+/**
+ * <p>
+    * ${table.comment!} MapperParent 接口
+    * </p>
+ *
+ * @author ${author}
+<#--* @since ${date}-->
+ */
+<#if kotlin>
+interface ${table.mapperName} : ${superMapperClass}<${entity}>
+<#else>
+public interface ${table.mapperName}Parent extends ${superMapperClass}<${entity}> {
+
+}
+</#if>

+ 61 - 57
security-center/src/test/java/com/diagbot/CodeAutoGenerator.java

@@ -33,44 +33,28 @@ public class CodeAutoGenerator {
      * 作者
      */
     private static String AUTHOR = "songxl";
-    /**
-     * 生成的实体类忽略表前缀: 不需要则置空
-     */
-    private static String ENTITY_IGNORE_PREFIX = "blogs";
+    // 数据库
+    private static String username = "root";
+    private static String password = "lantone";
+    private static String url = "jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8";
+    private static DbType DB_TYPE = DbType.MYSQL;
+    private static String driverClassName = "com.mysql.cj.jdbc.Driver";
     /**
      * 表名
      */
     private static String[] TABLES = {
             "med_check_info"
     };
-
-
     /**
-     * 父包名路径(文件输出路径,也是导包的路径)
+     * 生成的实体类忽略表前缀: 不需要则置空
      */
-    private static String PARENT_PACKAGE_PATH = "/com/diagbot";
-
-    // 各层包名
-    private static String ENTITY_PATH = "/entity/";
-    private static String FACADE_PATH = "/facade/";
-    private static String MAPPER_PATH = "/mapper/";
-    private static String XML_PATH = "/resources/mapper/";
-    private static String SERVICE_PATH = "/service/";
-    private static String SERVICE_IMPL_PATH = "/service/impl/";
-    private static String CONTROLLER_PATH = "/web/";
+    private static String[] ENTITY_IGNORE_PREFIX = { "med_" };
 
 
-    // 数据库
-    private static String username = "root";
-    private static String password = "lantone";
-    private static String url = "jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8";
-    private static DbType DB_TYPE = DbType.MYSQL;
-    private static String driverClassName = "com.mysql.cj.jdbc.Driver";
-
     //生成文件根目录
     private static String projectPath = "D://code";
     //是否将根目录更新为工程的根目录【true会覆盖该项目对应目录下的文件、慎用】
-    private static boolean updatePath = false;
+    private static boolean updatePath = true;
 
     // 文件生成开关
 
@@ -80,15 +64,32 @@ public class CodeAutoGenerator {
     private static boolean serviceFlag = true;
     //serviceImpl生成开关
     private static boolean serviceImplFlag = true;
-    //mapper.java(数据业务数据库CRUD接口)生成开关
+    //mapper.java
     private static boolean mapperJFlag = true;
-    //mapper.xml(数据库CRUD sql)生成开关
+    //mapperParent.java(数据业务数据库CRUD接口)生成开关
+    private static boolean mapperParentJFlag = true;
+    //mapper.xml (实体类bean与数据库表字段映射)生成开关
     private static boolean mapperXFlag = true;
-    //basemapper.xml(实体类bean与数据库表字段映射)生成开关
+    //mapperExt.xml(数据库CRUD sql)生成开关
     private static boolean baseMapperXFlag = true;
     //entity(表实体类)生成开关
     private static boolean entityFlag = true;
 
+    /**
+     * 父包名路径(文件输出路径,也是导包的路径)
+     */
+    private static String PARENT_PACKAGE_PATH = "/com/diagbot";
+
+    // 各层包名
+    private static String ENTITY_PATH = "/entity/";
+    private static String FACADE_PATH = "/facade/";
+    private static String MAPPER_PATH = "/mapper/";
+    private static String XML_PATH = "/resources/mapper/";
+    private static String SERVICE_PATH = "/service/";
+    private static String SERVICE_IMPL_PATH = "/service/impl/";
+    private static String CONTROLLER_PATH = "/web/";
+
+
     // 自定义输出模板和位置
     /**
      * entity输出模板
@@ -106,10 +107,10 @@ public class CodeAutoGenerator {
     private static String XML_TEMPLATE = "freemarker/mapper.xml.ftl";
     private static String XML_OUTPUT_PATH = "/src/main" + XML_PATH;
     /**
-     * basemapper.xml输出模板
+     * mapperExt.xml输出模板
      */
-    private static String BASEXML_TEMPLATE = "freemarker/basemapper.xml.ftl";
-    private static String BASEXML_OUTPUT_PATH = "/src/main" + XML_PATH + "/base/";
+    private static String XMLEXT_TEMPLATE = "freemarker/mapperExt.xml.ftl";
+    private static String XMLEXT_OUTPUT_PATH = "/src/main" + XML_PATH + "/ext/";
     /**
      * mapper.java输出模板
      */
@@ -117,10 +118,10 @@ public class CodeAutoGenerator {
     private static String MAPPER_OUTPUT_PATH = "/src/main/java" + PARENT_PACKAGE_PATH + MAPPER_PATH;
 
     /**
-     * basemapper.java输出模板
+     * mapperParent.java输出模板
      */
-    private static String BASEMAPPER_TEMPLATE = "freemarker/basemapper.java.ftl";
-    private static String BASEMAPPER_OUTPUT_PATH = "/src/main/java" + PARENT_PACKAGE_PATH + MAPPER_PATH + "/base/";
+    private static String BASEMAPPER_TEMPLATE = "freemarker/mapperParent.java.ftl";
+    private static String BASEMAPPER_OUTPUT_PATH = "/src/main/java" + PARENT_PACKAGE_PATH + MAPPER_PATH + "/parent/";
 
     /**
      * service输出模板
@@ -228,7 +229,7 @@ public class CodeAutoGenerator {
                 // 生成controller
                 .setRestControllerStyle(true)
                 // 去除表前缀
-                //                .setTablePrefix(ENTITY_IGNORE_PREFIX)
+                .setTablePrefix(ENTITY_IGNORE_PREFIX)
                 // controller映射地址:驼峰转连字符
                 .setControllerMappingHyphenStyle(true)
                 // 是否启用builder 模式
@@ -354,38 +355,41 @@ public class CodeAutoGenerator {
             });
         }
 
-        //Base mapper xml文件输出
+        //mapperExt xml文件输出
         if (baseMapperXFlag) {
-            list.add(new FileOutConfig(BASEXML_TEMPLATE) {
+            list.add(new FileOutConfig(XMLEXT_TEMPLATE) {
                 @Override
                 public String outputFile(TableInfo tableInfo) {
                     makeDir(projectPath + XML_OUTPUT_PATH);
-                    return projectPath + BASEXML_OUTPUT_PATH + "Base" + tableInfo.getMapperName() + StringPool.DOT_XML;
+                    return projectPath + XMLEXT_OUTPUT_PATH + tableInfo.getMapperName() + "Ext" + StringPool.DOT_XML;
                 }
             });
         }
 
         // mapper文件输出
-       if(mapperJFlag){
-           list.add(new FileOutConfig(MAPPER_TEMPLATE) {
-               @Override
-               public String outputFile(TableInfo tableInfo) {
-                   makeDir(projectPath + MAPPER_OUTPUT_PATH);
-                   return projectPath + MAPPER_OUTPUT_PATH + tableInfo.getMapperName() + StringPool.DOT_JAVA;
-               }
-           });
-       }
-        // Base mapper文件输出
-        //        list.add(new FileOutConfig(BASEMAPPER_TEMPLATE) {
-        //            @Override
-        //            public String outputFile(TableInfo tableInfo) {
-        //                makeDir(projectPath + MAPPER_OUTPUT_PATH);
-        //                return projectPath + BASEMAPPER_OUTPUT_PATH + "Base" + tableInfo.getMapperName() + StringPool.DOT_JAVA;
-        //            }
-        //        });
+        if (mapperJFlag) {
+            list.add(new FileOutConfig(MAPPER_TEMPLATE) {
+                @Override
+                public String outputFile(TableInfo tableInfo) {
+                    makeDir(projectPath + MAPPER_OUTPUT_PATH);
+                    return projectPath + MAPPER_OUTPUT_PATH + tableInfo.getMapperName() + StringPool.DOT_JAVA;
+                }
+            });
+        }
+        // mapperParent文件输出
+        if (mapperParentJFlag) {
+            list.add(new FileOutConfig(BASEMAPPER_TEMPLATE) {
+                @Override
+                public String outputFile(TableInfo tableInfo) {
+                    makeDir(projectPath + MAPPER_OUTPUT_PATH);
+                    return projectPath + BASEMAPPER_OUTPUT_PATH + tableInfo.getMapperName() + "Parent" + StringPool.DOT_JAVA;
+                }
+            });
+        }
+
 
         // service文件输出
-        if(serviceFlag){
+        if (serviceFlag) {
             list.add(new FileOutConfig(SERVICE_TEMPLATE) {
                 @Override
                 public String outputFile(TableInfo tableInfo) {
@@ -396,7 +400,7 @@ public class CodeAutoGenerator {
         }
 
         // service impl文件输出
-        if(serviceImplFlag){
+        if (serviceImplFlag) {
             list.add(new FileOutConfig(SERVICE_IMPL_TEMPLATE) {
                 @Override
                 public String outputFile(TableInfo tableInfo) {