🎉 init-代码生成器
This commit is contained in:
parent
43107a07e4
commit
12f8055bd2
|
@ -31,6 +31,8 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||||
private final IMetadataProvider databaseMetadataProvider;
|
private final IMetadataProvider databaseMetadataProvider;
|
||||||
private final IMetadataProvider sqlMetadataProvider;
|
private final IMetadataProvider sqlMetadataProvider;
|
||||||
|
|
||||||
|
private final List<String> ignoreField = List.of("id", "update_time", "create_time", "create_user", "update_user");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代码生成方法---数据库生成
|
* 代码生成方法---数据库生成
|
||||||
*
|
*
|
||||||
|
@ -42,7 +44,14 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||||
return dto.getTableNames().parallelStream()
|
return dto.getTableNames().parallelStream()
|
||||||
.flatMap(tableName -> {
|
.flatMap(tableName -> {
|
||||||
TableMetaData tableMeta = databaseMetadataProvider.getTableMetadata(tableName);
|
TableMetaData tableMeta = databaseMetadataProvider.getTableMetadata(tableName);
|
||||||
List<ColumnMetaData> columns = databaseMetadataProvider.getColumnInfoList(tableName);
|
|
||||||
|
// 排除不需要的字段
|
||||||
|
List<ColumnMetaData> columns = databaseMetadataProvider.getColumnInfoList(tableName).stream()
|
||||||
|
.filter(columnMetaData -> {
|
||||||
|
String columnName = columnMetaData.getColumnName();
|
||||||
|
return !ignoreField.contains(columnName);
|
||||||
|
})
|
||||||
|
.toList();
|
||||||
return getGeneratorStream(dto, tableMeta, columns);
|
return getGeneratorStream(dto, tableMeta, columns);
|
||||||
})
|
})
|
||||||
.collect(Collectors.groupingBy(GeneratorVo::getTableName));
|
.collect(Collectors.groupingBy(GeneratorVo::getTableName));
|
||||||
|
@ -59,7 +68,13 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||||
// 根据Sql语句进行分析表的属性和表列字段
|
// 根据Sql语句进行分析表的属性和表列字段
|
||||||
String sql = dto.getSql();
|
String sql = dto.getSql();
|
||||||
TableMetaData tableMeta = sqlMetadataProvider.getTableMetadata(sql);
|
TableMetaData tableMeta = sqlMetadataProvider.getTableMetadata(sql);
|
||||||
List<ColumnMetaData> columns = sqlMetadataProvider.getColumnInfoList(sql);
|
|
||||||
|
List<ColumnMetaData> columns = sqlMetadataProvider.getColumnInfoList(sql).stream()
|
||||||
|
.filter(columnMetaData -> {
|
||||||
|
String columnName = columnMetaData.getColumnName();
|
||||||
|
return !ignoreField.contains(columnName);
|
||||||
|
})
|
||||||
|
.toList();
|
||||||
|
|
||||||
// 生成代码
|
// 生成代码
|
||||||
List<GeneratorVo> generatorVoList = getGeneratorStream(dto, tableMeta, columns).toList();
|
List<GeneratorVo> generatorVoList = getGeneratorStream(dto, tableMeta, columns).toList();
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package ${package}.domain.entity;
|
package ${package}.domain.entity;
|
||||||
|
|
||||||
|
import com.auth.common.model.common.BaseEntity;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
@ -20,12 +21,12 @@ import java.util.Date;
|
||||||
@Schema(name = "${classUppercaseName}对象", title = "${comment}", description = "${comment}的实体类对象")
|
@Schema(name = "${classUppercaseName}对象", title = "${comment}", description = "${comment}的实体类对象")
|
||||||
public class ${classUppercaseName}Entity extends BaseEntity {
|
public class ${classUppercaseName}Entity extends BaseEntity {
|
||||||
|
|
||||||
#foreach($field in ${columnInfoList})
|
#foreach($field in ${columnInfoList})
|
||||||
@Schema(name = "${field.lowercaseName}", title = "${field.comment}")
|
@Schema(name = "${field.lowercaseName}", title = "${field.comment}")
|
||||||
#if($field.isPrimaryKey)
|
#if($field.isPrimaryKey)
|
||||||
@TableId(type = IdType.ASSIGN_ID)
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
#end
|
#end
|
||||||
private ${field.javaType} ${field.lowercaseName};
|
private ${field.javaType} ${field.lowercaseName};
|
||||||
|
|
||||||
#end
|
#end
|
||||||
}
|
}
|
Loading…
Reference in New Issue