2
0

feat: add code generator

This commit is contained in:
caiyuchao
2024-12-09 18:32:59 +08:00
parent af65a433ef
commit 24240ee01e
3 changed files with 88 additions and 5 deletions

View File

@@ -65,6 +65,15 @@
<artifactId>wfc-common-swagger</artifactId>
</dependency>
<dependency>
<groupId>org.wfc</groupId>
<artifactId>wfc-common-mybatis</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
</dependencies>
<build>

View File

@@ -1,10 +1,5 @@
package org.wfc.gen.controller;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -28,6 +23,12 @@ import org.wfc.gen.domain.GenTableColumn;
import org.wfc.gen.service.IGenTableColumnService;
import org.wfc.gen.service.IGenTableService;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 代码生成 操作处理
*

View File

@@ -0,0 +1,73 @@
package org.wfc.gen.util;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.fill.Column;
import org.wfc.common.mybatis.domain.BaseData;
import java.sql.Types;
import java.util.Collections;
/**
* @description: 代码生成器工具
* @author: cyc
* @since: 2024-12-06
*/
public class GenPlusUtils {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/wfc-user-db?useUnicode=true&useSSL=false&characterEncoding=utf8", "root", "123456")
.globalConfig(builder -> {
builder.author("cyc") // 设置作者
.enableSpringdoc()
.dateType(DateType.ONLY_DATE)
.outputDir("D://gencode"); // 指定输出目录
})
.dataSourceConfig(builder ->
builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
if (typeCode == Types.SMALLINT) {
// 自定义类型转换
return DbColumnType.INTEGER;
}
if (typeCode == Types.CHAR) {
// 自定义类型转换
return DbColumnType.BOOLEAN;
}
return typeRegistry.getColumnType(metaInfo);
})
)
.packageConfig(builder ->
builder.parent("org.wfc") // 设置父包名
.moduleName("user") // 设置父包模块名
.entity("domain")
.pathInfo(Collections.singletonMap(OutputFile.xml, "D://gencode")) // 设置mapperXml生成路径
)
.strategyConfig(builder ->
builder.addInclude("u_cdr_detail") // 设置需要生成的表名
.addTablePrefix("t_", "c_") // 设置过滤表前缀
.controllerBuilder()
.enableRestStyle()
.entityBuilder()
.enableLombok()
.enableFileOverride()
.superClass(BaseData.class)
.addSuperEntityColumns("id", "create_by", "create_time", "update_by", "update_time", "del_flag")
.addTableFills(new Column("create_time", FieldFill.INSERT))
.addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE))
.addTableFills(new Column("create_by", FieldFill.INSERT))
.addTableFills(new Column("update_by", FieldFill.INSERT_UPDATE))
.controllerBuilder()
.enableRestStyle()
.serviceBuilder()
.enableFileOverride()
.mapperBuilder()
.enableFileOverride()
)
.execute();
}
}