package cn.flightfeather.supervision.domain.generatePlugin
|
|
import org.mybatis.generator.api.IntrospectedColumn
|
import org.mybatis.generator.api.IntrospectedTable
|
import org.mybatis.generator.api.Plugin
|
import org.mybatis.generator.api.PluginAdapter
|
import org.mybatis.generator.api.dom.java.Field
|
import org.mybatis.generator.api.dom.java.TopLevelClass
|
import tk.mybatis.mapper.generator.MapperPlugin
|
|
/**
|
* MyBatis Generator自定义注解插件
|
* 用于为生成的实体类添加自定义注解
|
* @date 2025/10/13
|
* @author feiyu02
|
*/
|
class CustomAnnotationPlugin : MapperPlugin() {
|
|
override fun validate(warnings: MutableList<String>?): Boolean {
|
return true
|
}
|
|
override fun modelBaseRecordClassGenerated(topLevelClass: TopLevelClass?, introspectedTable: IntrospectedTable?): Boolean {
|
// 添加类级注解
|
topLevelClass?.addImportedType("io.swagger.annotations.ApiModel");
|
topLevelClass?.addAnnotation(
|
String.format(
|
"@ApiModel(value = \"%s\")", introspectedTable?.tableConfiguration
|
?.domainObjectName
|
)
|
)
|
return super.modelBaseRecordClassGenerated(topLevelClass, introspectedTable)
|
}
|
|
/**
|
* 为字段添加注解
|
*/
|
override fun modelFieldGenerated(
|
field: Field?,
|
topLevelClass: TopLevelClass?,
|
introspectedColumn: IntrospectedColumn?,
|
introspectedTable: IntrospectedTable?,
|
modelClassType: Plugin.ModelClassType?,
|
): Boolean {
|
// 为每个字段将其注释(若注释为null,使用字段名)添加为Swagger注解,用于API文档生成
|
introspectedColumn ?: return true
|
topLevelClass?.addImportedType("io.swagger.annotations.ApiModelProperty");
|
if (introspectedColumn.remarks != null) {
|
field?.addAnnotation(String.format("@ApiModelProperty(value = \"%s\")", introspectedColumn.remarks));
|
} else {
|
field?.addAnnotation(
|
String.format(
|
"@ApiModelProperty(value = \"%s\")",
|
introspectedColumn.actualColumnName
|
)
|
);
|
}
|
|
return super.modelFieldGenerated(field, topLevelClass, introspectedColumn, introspectedTable, modelClassType)
|
}
|
}
|