tianyunperfect 2 anos atrás
pai
commit
1dc8a4842d

+ 34 - 26
mybatis-plus/src/main/java/com/alvin/Generator.java

@@ -2,7 +2,9 @@ package com.alvin;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
 import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.config.builder.Entity;
 import com.baomidou.mybatisplus.generator.config.rules.DateType;
 import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
 import com.baomidou.mybatisplus.generator.fill.Column;
@@ -30,20 +32,27 @@ public class Generator {
      * @param service       是否生成 service
      * @param serviceImpl   是否生成 serviceImpl
      */
-    public static void generatorToFile(String db_url, String db_username, String db_password, String author,
-                                       String javaDir, String parentPackage, String tableName, String tablePrefix,
+    public static void generatorToFile(String db_url, String db_username, String db_password,
+                                       String author, String javaDir, String parentPackage,
+                                       String tableName, String tablePrefix, Boolean swagger,
+                                       String logicDeleteField, String insertFields, String updateFields,
                                        Boolean controller, Boolean service, Boolean serviceImpl) {
-        FastAutoGenerator generator = FastAutoGenerator.create(db_url, db_username, db_password)
-                //===全局配置
-                .globalConfig(builder -> {
+        FastAutoGenerator generator = FastAutoGenerator.create(db_url, db_username, db_password);
+        GlobalConfig.Builder builder1 = new GlobalConfig.Builder();
+
+        //===全局配置
+        generator.globalConfig(builder -> {
                     builder.author(author) // 设置作者
                             .dateType(DateType.ONLY_DATE) // 设置日期为 Date
-                            .enableSwagger() // 开启 swagger 模式
                             .fileOverride() // 覆盖已生成文件
                             .outputDir(javaDir); // 指定输出目录
-                })
-                //===模块配置
-                .packageConfig(builder -> {
+                    if (swagger) {
+                        builder.enableSwagger();// 开启 swagger 模式
+                    }
+                }
+        );
+        //===模块配置
+        generator.packageConfig(builder -> {
                     builder.parent(parentPackage) // 设置父包名
                             .moduleName("") // 设置父包模块名
                             .pathInfo(Collections.singletonMap(OutputFile.mapperXml, javaDir + "/../resources/mapper")); // 设置mapperXml生成路径
@@ -55,17 +64,16 @@ public class Generator {
                     //mapper
                     builder.mapperBuilder().enableMapperAnnotation().build();
                     //实体类
-                    builder.entityBuilder()
-                            .enableLombok()
-                            .logicDeleteColumnName("use_status")
-                            .addTableFills(
-                                    new Column("create_time", FieldFill.INSERT),
-                                    new Column("create_id", FieldFill.INSERT),
-                                    new Column("create_name", FieldFill.INSERT),
-                                    new Column("edit_id", FieldFill.INSERT_UPDATE),
-                                    new Column("edit_time", FieldFill.INSERT_UPDATE),
-                                    new Column("edit_name", FieldFill.INSERT_UPDATE)
-                            );
+                    Entity.Builder builder2 = builder.entityBuilder().enableLombok();
+                    if (logicDeleteField != null && logicDeleteField.trim().length() > 0) {
+                        builder2.logicDeleteColumnName(logicDeleteField);
+                    }
+                    for (String s : insertFields.split(",")) {
+                        builder2.addTableFills(new Column(s.trim(), FieldFill.INSERT));
+                    }
+                    for (String s : updateFields.split(",")) {
+                        builder2.addTableFills(new Column(s.trim(), FieldFill.INSERT_UPDATE));
+                    }
                     // 设置需要生成的表名
                     for (String s : tableName.split(",")) {
                         builder.addInclude(s.trim());
@@ -78,19 +86,19 @@ public class Generator {
                 .templateConfig(builder -> builder.entity("templates/entity1.java"));
 
         if (!controller) {
-            generator.templateConfig(builder -> builder.entity("")); // 设置为空则不会生成该文件
+            generator.templateConfig(builder -> builder.controller("")); // 设置为空则不会生成该文件
         } else {
-            generator.templateConfig(builder -> builder.entity("templates/controller1.java"));
+            generator.templateConfig(builder -> builder.controller("templates/controller1.java"));
         }
         if (!service) {
-            generator.templateConfig(builder -> builder.entity(""));
+            generator.templateConfig(builder -> builder.service(""));
         } else {
-            generator.templateConfig(builder -> builder.entity("templates/service1.java"));
+            generator.templateConfig(builder -> builder.service("templates/service1.java"));
         }
         if (!serviceImpl) {
-            generator.templateConfig(builder -> builder.entity(""));
+            generator.templateConfig(builder -> builder.serviceImpl(""));
         } else {
-            generator.templateConfig(builder -> builder.entity("templates/serviceImpl1.java"));
+            generator.templateConfig(builder -> builder.serviceImpl("templates/serviceImpl1.java"));
         }
         generator.execute();
     }

+ 24 - 18
mybatis-plus/src/main/java/com/alvin/genTest.java

@@ -10,33 +10,39 @@ public class genTest {
         System.out.println(123);
     }
 
+    @Test
+    public void gen_web_history() {
+        generatorToFile(
+                "jdbc:mysql://www.tianyunperfect.cn:3306/web_history", "web_history", "73Jn2zaDbcd4Jpfs",
+                "alvin", "/Users/apple/IdeaProjects/magic-api-test/src/main/java", "com.alvin",
+                "user,", "", false,
+                "", "create_time", "update_time",
+                true, true, true
+                //false, false, false
+        );
+    }
+
     @Test
     public void testManager() {
         generatorToFile(
-                "jdbc:mysql://mysql.aimpdev.svc.k5.bigtree.zone:3306/aimp_model",
-                "test_user",
-                "tmOxmmc+3jznq2cX",
-                "alvin",
-                "/Users/alvin/bigtree/aimp-manager/aimp-manager-service/src/main/java",
-                "com.bigtreefinance.aimp.manager",
-                "aimp_list,aimp_model,aimp_model_log,aimp_model_version,aimp_node_config,aimp_operation_log,aimp_process,aimp_process_node,aimp_sample,",
-                //"", true, true, true
-                "", false, false, false
+                "jdbc:mysql://mysql.aimpdev.svc.k5.bigtree.zone:3306/aimp_model", "test_user", "tmOxmmc+3jznq2cX",
+                "alvin", "/Users/alvin/bigtree/aimp-manager/aimp-manager-service/src/main/java", "com.bigtreefinance.aimp.manager",
+                "aimp_list,aimp_model,aimp_model_log,aimp_model_version,aimp_node_config,aimp_operation_log,aimp_process,aimp_process_node,aimp_sample,", "", true,
+                "use_status", "create_time,create_id,create_name", "edit_id,edit_time,edit_name",
+                // true, true, true
+                false, false, false
         );
     }
 
     @Test
     public void genActuator() {
         generatorToFile(
-                "jdbc:mysql://mysql.aimpdev.svc.k5.bigtree.zone:3306/aimp_model",
-                "test_user",
-                "tmOxmmc+3jznq2cX",
-                "alvin",
-                "/Users/alvin/bigtree/aimp-actuator/aimp-actuator-service/src/main/java",
-                "com.bigtreefinance.aimp.actuator",
-                "aimp_model_version,",
-                //"", true, true, true
-                "", false, false, false
+                "jdbc:mysql://mysql.aimpdev.svc.k5.bigtree.zone:3306/aimp_model", "test_user", "tmOxmmc+3jznq2cX",
+                "alvin", "/Users/alvin/bigtree/aimp-actuator/aimp-actuator-service/src/main/java", "com.bigtreefinance.aimp.actuator",
+                "aimp_model_version,", "", true,
+                "use_status", "create_time,create_id,create_name", "edit_id,edit_time,edit_name",
+                //true, true, true
+                false, false, false
         );
     }
 }

+ 5 - 0
mybatis-plus/src/main/resources/templates/service1.java.ftl

@@ -1,7 +1,10 @@
 package ${package.Service};
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import ${package.Entity}.${entity};
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import ${superServiceClassPackage};
 
 /**
@@ -19,9 +22,11 @@ public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
         wrapper.last("limit 1");
         return this.getOne(wrapper);
     }
+
     default LambdaQueryWrapper<${entity}> getLambdaQuery() {
         return Wrappers.lambdaQuery(new ${entity}());
     }
+
     default LambdaUpdateWrapper<${entity}> getLambdaUpdate() {
         return Wrappers.lambdaUpdate(new ${entity}());
     }