完善代码生成

This commit is contained in:
2024-02-25 09:46:02 +08:00
parent f4260323c2
commit 5c428e419f

View File

@@ -160,22 +160,18 @@ public class Codegen {
.addAnnotation(Data.class)
.build();
if (archive) {
dto =
dto.toBuilder()
.addField(
FieldSpec.builder(
String.class, "archiveStatus", Modifier.PRIVATE)
.build())
.addField(
FieldSpec.builder(
String.class,
"archiveStatusName",
Modifier.PRIVATE)
.build())
.build();
}
@@ -244,14 +240,13 @@ public class Codegen {
saveFile(mapperPackage, mapper);
// 生成service
MethodSpec serviceUpdate = MethodSpec.methodBuilder("update")
.addModifiers(Modifier.PUBLIC)
.returns(ClassName.get(dtoPackage, dto.name))
.addParameter(
ClassName.get(dtoPackage, updateDto.name),
"request")
.addStatement(
"""
MethodSpec serviceUpdate =
MethodSpec.methodBuilder("update")
.addModifiers(Modifier.PUBLIC)
.returns(ClassName.get(dtoPackage, dto.name))
.addParameter(ClassName.get(dtoPackage, updateDto.name), "request")
.addStatement(
"""
$T entity = this.repository.get(request.getId());
this.mapper.updateEntity(entity, request);
@@ -259,11 +254,10 @@ public class Codegen {
return getById(entity.getId())
""",
ClassName.get(entityPackage, entity.name))
.build();
ClassName.get(entityPackage, entity.name))
.build();
if (archive){
if (archive) {
serviceUpdate =
MethodSpec.methodBuilder("update")
.addModifiers(Modifier.PUBLIC)
@@ -285,21 +279,25 @@ public class Codegen {
return getById(entity.getId())
""",
ClassName.get(entityPackage, entity.name), ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class))
ClassName.get(entityPackage, entity.name),
ClassName.get(ArchiveUtils.class),
ClassName.get(entityPackage, entity.name),
ClassName.get(BizException.class))
.build();
}
MethodSpec serviceDelete = MethodSpec.methodBuilder("delete")
.addModifiers(Modifier.PUBLIC)
.returns(void.class)
.addParameter(ClassName.get(IdRequest.class), "request")
.addStatement(
"""
MethodSpec serviceDelete =
MethodSpec.methodBuilder("delete")
.addModifiers(Modifier.PUBLIC)
.returns(void.class)
.addParameter(ClassName.get(IdRequest.class), "request")
.addStatement(
"""
this.repository.deleteAllById(request.getIds())
""")
.build();
.build();
if (archive){
if (archive) {
serviceDelete =
MethodSpec.methodBuilder("delete")
.addModifiers(Modifier.PUBLIC)
@@ -317,8 +315,10 @@ public class Codegen {
});
this.repository.deleteAllById(request.getIds())
""",
ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class)).build();
ClassName.get(ArchiveUtils.class),
ClassName.get(entityPackage, entity.name),
ClassName.get(BizException.class))
.build();
}
TypeSpec service =
@@ -370,10 +370,8 @@ public class Codegen {
""",
ClassName.get(entityPackage, entity.name))
.build())
.addMethod(
serviceUpdate)
.addMethod(
serviceDelete)
.addMethod(serviceUpdate)
.addMethod(serviceDelete)
.addMethod(
MethodSpec.methodBuilder("getById")
.addModifiers(Modifier.PUBLIC)
@@ -410,8 +408,6 @@ public class Codegen {
.build())
.build();
if (archive) {
service =
service.toBuilder()
@@ -428,7 +424,10 @@ public class Codegen {
}))
.peek(x -> x.setArchiveStatus("1"))
.forEach(this.repository::save);
""", ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class))
""",
ClassName.get(ArchiveUtils.class),
ClassName.get(entityPackage, entity.name),
ClassName.get(BizException.class))
.build())
.addMethod(
MethodSpec.methodBuilder("unarchive")
@@ -443,13 +442,12 @@ public class Codegen {
}))
.peek(x -> x.setArchiveStatus("0"))
.forEach(this.repository::save);
""", ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class))
""",
ClassName.get(ArchiveUtils.class),
ClassName.get(entityPackage, entity.name),
ClassName.get(BizException.class))
.build())
.build();
}
saveFile(servicePackage, service);
@@ -584,8 +582,7 @@ public class Codegen {
ClassName.get(Sort.class))
.build());
if (archive){
if (archive) {
controllerBuilder
.addMethod(
MethodSpec.methodBuilder("archive")
@@ -597,7 +594,8 @@ public class Codegen {
.build())
.addParameter(
ParameterSpec.builder(
ClassName.get(IdRequest.class), "request")
ClassName.get(IdRequest.class),
"request")
.addAnnotation(RequestBody.class)
.build())
.addStatement(
@@ -616,7 +614,8 @@ public class Codegen {
.build())
.addParameter(
ParameterSpec.builder(
ClassName.get(IdRequest.class), "request")
ClassName.get(IdRequest.class),
"request")
.addAnnotation(RequestBody.class)
.build())
.addStatement(
@@ -628,6 +627,39 @@ public class Codegen {
}
saveFile(controllerPackage, controllerBuilder.build());
genScript(lModuleName, controllerPackage, controllerBuilder.build());
}
@SneakyThrows
private static void genScript(
String lModuleName, String controllerPackage, TypeSpec controller) {
var script =
"""
package scripts.dict
import cn.lihongjie.coal.base.dto.CommonQuery
import %s
import org.springframework.context.ApplicationContext
ApplicationContext ioc = ioc;
def controller = ioc.getBean(%s.class)
return controller.list(new CommonQuery())
"""
.formatted(controllerPackage + "." + controller.name, controller.name);
Files.writeString(
Path.of("src/main/resources/scripts/dict/enum/%sDict.groovy".formatted(lModuleName)),
script);
}
@SneakyThrows