mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 07:46:40 +08:00
代码生成添加树脚本
This commit is contained in:
@@ -353,12 +353,10 @@ public class Codegen {
|
||||
.addMember(
|
||||
"value",
|
||||
"{@$T(target = \"children\", qualifiedByName = \"toTreeDto\")}",
|
||||
|
||||
Mapping.class)
|
||||
.build())
|
||||
.addAnnotation(
|
||||
AnnotationSpec.builder(
|
||||
Named.class)
|
||||
AnnotationSpec.builder(Named.class)
|
||||
.addMember("value", "$S", "toTreeDto")
|
||||
.build())
|
||||
.returns(ClassName.get(dtoPackage, treeDto.name))
|
||||
@@ -366,7 +364,6 @@ public class Codegen {
|
||||
ClassName.get(entityPackage, entity.name),
|
||||
"entity")
|
||||
.build())
|
||||
|
||||
.addMethod(
|
||||
MethodSpec.methodBuilder("toTreeDtoExcludeChildren")
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
|
||||
@@ -375,10 +372,8 @@ public class Codegen {
|
||||
.addMember(
|
||||
"value",
|
||||
"{@$T(target = \"children\",ignore=true)}",
|
||||
|
||||
Mapping.class)
|
||||
.build())
|
||||
|
||||
.returns(ClassName.get(dtoPackage, treeDto.name))
|
||||
.addParameter(
|
||||
ClassName.get(entityPackage, entity.name),
|
||||
@@ -613,14 +608,17 @@ public class Codegen {
|
||||
.addMethod(
|
||||
MethodSpec.methodBuilder("getRoots")
|
||||
.addModifiers(Modifier.PUBLIC)
|
||||
.addParameter(ClassName.get(CommonQuery.class), "request")
|
||||
.addParameter(
|
||||
ClassName.get(CommonQuery.class), "request")
|
||||
.returns(
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(List.class),
|
||||
ClassName.get(
|
||||
dtoPackage, treeDto.name)))
|
||||
.addCode(CodeBlock.builder()
|
||||
.add("""
|
||||
.addCode(
|
||||
CodeBlock.builder()
|
||||
.add(
|
||||
"""
|
||||
|
||||
if ($T.isEmpty(request.getItems())){
|
||||
$T roots = this.repository.findAll( (root, query, criteriaBuilder) -> criteriaBuilder.isNull(root.get("parent")));
|
||||
@@ -662,45 +660,49 @@ public class Codegen {
|
||||
|
||||
|
||||
""",
|
||||
ClassName.get(
|
||||
CollectionUtils.class),
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(List.class),
|
||||
ClassName.get(
|
||||
entityPackage, entity.name)),
|
||||
ClassName.get(
|
||||
Collectors.class),
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(Page.class),
|
||||
CollectionUtils.class),
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(
|
||||
List.class),
|
||||
ClassName.get(
|
||||
entityPackage,
|
||||
entity.name)),
|
||||
ClassName.get(Collectors.class),
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(
|
||||
Page.class),
|
||||
ClassName.get(
|
||||
entityPackage,
|
||||
entity.name)),
|
||||
ClassName.get(
|
||||
entityPackage, entity.name)),
|
||||
ClassName.get(PageRequest.class),
|
||||
ClassName.get(Sort.class),
|
||||
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(List.class),
|
||||
ClassName.get(String.class)),
|
||||
ClassName.get(
|
||||
entityPackage, entity.name),
|
||||
ClassName.get(
|
||||
Collectors.class),
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(List.class),
|
||||
PageRequest.class),
|
||||
ClassName.get(Sort.class),
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(
|
||||
List.class),
|
||||
ClassName.get(
|
||||
String.class)),
|
||||
ClassName.get(
|
||||
dtoPackage, treeDto.name)),
|
||||
ClassName.get(
|
||||
Collectors.class),
|
||||
ClassName.get(StreamSupport.class),
|
||||
ClassName.get(TreeUtils.class),
|
||||
ClassName.get(dtoPackage, treeDto.name),
|
||||
ClassName.get(ArrayList.class),
|
||||
ClassName.get(Collectors.class))
|
||||
.build()
|
||||
|
||||
|
||||
)
|
||||
|
||||
|
||||
entityPackage,
|
||||
entity.name),
|
||||
ClassName.get(Collectors.class),
|
||||
ParameterizedTypeName.get(
|
||||
ClassName.get(
|
||||
List.class),
|
||||
ClassName.get(
|
||||
dtoPackage,
|
||||
treeDto.name)),
|
||||
ClassName.get(Collectors.class),
|
||||
ClassName.get(
|
||||
StreamSupport.class),
|
||||
ClassName.get(TreeUtils.class),
|
||||
ClassName.get(
|
||||
dtoPackage,
|
||||
treeDto.name),
|
||||
ClassName.get(ArrayList.class),
|
||||
ClassName.get(Collectors.class))
|
||||
.build())
|
||||
.build())
|
||||
.addMethod(
|
||||
MethodSpec.methodBuilder("getTreeByIds")
|
||||
@@ -720,8 +722,7 @@ public class Codegen {
|
||||
return roots.stream().map(de -> this.mapper.toTreeDto(de)).collect($T.toList())
|
||||
""",
|
||||
ClassName.get(ArrayList.class),
|
||||
ClassName.get(
|
||||
Collectors.class))
|
||||
ClassName.get(Collectors.class))
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
@@ -909,7 +910,8 @@ public class Codegen {
|
||||
.addModifiers(Modifier.PUBLIC)
|
||||
.addParameter(
|
||||
ParameterSpec.builder(
|
||||
ClassName.get(CommonQuery.class), "request")
|
||||
ClassName.get(CommonQuery.class),
|
||||
"request")
|
||||
.addAnnotation(RequestBody.class)
|
||||
.build())
|
||||
.returns(
|
||||
@@ -951,11 +953,47 @@ public class Codegen {
|
||||
|
||||
saveFile(controllerPackage, controllerBuilder.build());
|
||||
|
||||
genScript(lModuleName, controllerPackage, controllerBuilder.build());
|
||||
if (tree) {
|
||||
genTreeScript(lModuleName, controllerPackage, controllerBuilder.build());
|
||||
} else {
|
||||
genEnumScript(lModuleName, controllerPackage, controllerBuilder.build());
|
||||
}
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
private static void genScript(
|
||||
private static void genTreeScript(
|
||||
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.roots(new CommonQuery())
|
||||
|
||||
|
||||
"""
|
||||
.formatted(controllerPackage + "." + controller.name, controller.name);
|
||||
|
||||
Files.writeString(
|
||||
Path.of(
|
||||
"src/main/resources/scripts/dict/tree/%sTree.groovy"
|
||||
.formatted(lModuleName)),
|
||||
script);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
private static void genEnumScript(
|
||||
String lModuleName, String controllerPackage, TypeSpec controller) {
|
||||
|
||||
var script =
|
||||
|
||||
Reference in New Issue
Block a user