Skip to content

Commit 08bf61d

Browse files
committed
1. 修改生成器的一些BUG
1 parent a7368f9 commit 08bf61d

20 files changed

+159
-59
lines changed

src/main/java/com/tml/otowbackend/engine/generator/funpack/pack/AddFunctionPack.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.tml.otowbackend.engine.generator.funpack.pack;
22

33

4+
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
45
import com.tml.otowbackend.engine.ai.result.FeaturePackage;
56
import com.tml.otowbackend.engine.generator.funpack.AbstrateFunctionPack;
67
import com.tml.otowbackend.engine.generator.template.java.method.AddServiceMethodTemplate;
@@ -32,27 +33,31 @@ protected FeaturePackage getFeaturePackage() {
3233
// controller的添加方法
3334
@Override
3435
protected void addMethodToController(ControllerTemplate controller) {
35-
controller.addPostMethod(getAddMethod(), "/add/user");
36+
controller.addPostMethod(getAddMethod(), "/add" + getParamString("className"));
3637
}
3738

3839
// controller-post 的 添加
3940
private MetaMethod getAddMethod(){
4041
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, getParamString("className"));
41-
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(),reqUser.getAllPackagePath(), reqUser.getClassName().toLowerCase());
42+
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(),reqUser.getAllPackagePath(), StringUtils.firstToLowerCase(reqUser.getClassName()));
4243
metaMethodParam.addAnnotations(List.of(REQUEST_BODY));
4344
String body = String.format("%s.%s(%s);", getParamString("classLower"), addServiceMethod, metaMethodParam.getName());
4445
return new MetaMethod(addServiceMethod, List.of(metaMethodParam), body);
4546
}
4647

4748
@Override
4849
protected void addMethodToService(ServiceTemplate service) {
49-
service.addMethods(addServiceMethod, List.of((MetaMethodParam) getParam("metaMethodParam")));
50+
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, getParamString("className"));
51+
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(),reqUser.getAllPackagePath(), StringUtils.firstToLowerCase(reqUser.getClassName()));
52+
service.addMethods(addServiceMethod, List.of(metaMethodParam));
5053
}
5154

5255
@Override
5356
protected void addMethodToServiceImpl(ServiceImplTemplate serviceImplTemplate) {
5457
AddServiceMethodTemplate addServiceMethodTemplate = new AddServiceMethodTemplate(saveTemplateFilePath, getParamString("className"));
55-
MetaMethod metaMethod = new MetaMethod(engine.generate(addServiceMethodTemplate));
58+
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, getParamString("className"));
59+
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(), reqUser.getAllPackagePath(), StringUtils.firstToLowerCase(reqUser.getClassName()));
60+
MetaMethod metaMethod = new MetaMethod(addServiceMethod, List.of(metaMethodParam), engine.generate(addServiceMethodTemplate));
5661
serviceImplTemplate.addMethod(metaMethod);
5762
}
5863
}

src/main/java/com/tml/otowbackend/engine/generator/funpack/pack/DelFunctionPack.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.tml.otowbackend.engine.ai.result.FeaturePackage;
55
import com.tml.otowbackend.engine.generator.funpack.AbstrateFunctionPack;
66
import com.tml.otowbackend.engine.generator.template.java.method.DeleteServiceMethodTemplate;
7+
import com.tml.otowbackend.engine.generator.template.java.method.SelectServiceMethodTemplate;
78
import com.tml.otowbackend.engine.generator.template.java.model.ReqTemplate;
89
import com.tml.otowbackend.engine.generator.template.java.service.ControllerTemplate;
910
import com.tml.otowbackend.engine.generator.template.java.service.ServiceImplTemplate;
@@ -37,7 +38,7 @@ protected void addMethodToController(ControllerTemplate controller) {
3738
// controller-delete 的 删除
3839
private MetaMethod getDeleteMethod(){
3940
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, "id");
40-
MetaMethodParam metaMethodParam = new MetaMethodParam("Integer",reqUser.getAllPackagePath(), "id");
41+
MetaMethodParam metaMethodParam = new MetaMethodParam("Integer", null, "id");
4142
metaMethodParam.addAnnotations(List.of(Path_Variable));
4243
String body = String.format("%s.%s(%s);", getParamString("classLower"), deleteServiceMethod, "id");
4344
return new MetaMethod(deleteServiceMethod, List.of(metaMethodParam), body);
@@ -52,8 +53,10 @@ protected void addMethodToService(ServiceTemplate service) {
5253
// serviceImpl 的删除方法
5354
@Override
5455
protected void addMethodToServiceImpl(ServiceImplTemplate serviceImplTemplate) {
55-
DeleteServiceMethodTemplate deleteServiceMethodTemplate = new DeleteServiceMethodTemplate(deleteTemplateFilePath,getParamString("className"));
56-
MetaMethod metaMethod = new MetaMethod(engine.generate(deleteServiceMethodTemplate));
56+
DeleteServiceMethodTemplate deleteServiceMethodTemplate = new DeleteServiceMethodTemplate(deleteTemplateFilePath, getParamString("className"));
57+
MetaMethodParam metaMethodParam = new MetaMethodParam("Integer",null, "id");
58+
MetaMethod metaMethod = new MetaMethod(deleteServiceMethod, List.of(metaMethodParam), engine.generate(deleteServiceMethodTemplate));
5759
serviceImplTemplate.addMethod(metaMethod);
5860
}
61+
5962
}
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.tml.otowbackend.engine.generator.funpack.pack;
22

3+
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
34
import com.tml.otowbackend.engine.ai.result.FeaturePackage;
45
import com.tml.otowbackend.engine.generator.funpack.AbstrateFunctionPack;
6+
import com.tml.otowbackend.engine.generator.template.java.method.AddServiceMethodTemplate;
57
import com.tml.otowbackend.engine.generator.template.java.method.SelectServiceMethodTemplate;
68
import com.tml.otowbackend.engine.generator.template.java.model.ReqTemplate;
9+
import com.tml.otowbackend.engine.generator.template.java.model.VOTemplate;
710
import com.tml.otowbackend.engine.generator.template.java.service.ControllerTemplate;
811
import com.tml.otowbackend.engine.generator.template.java.service.ServiceImplTemplate;
912
import com.tml.otowbackend.engine.generator.template.java.service.ServiceTemplate;
@@ -14,8 +17,7 @@
1417
import java.util.List;
1518

1619
import static com.tml.otowbackend.constants.TemplateConstant.Path_Variable;
17-
import static com.tml.otowbackend.engine.generator.template.java.InitTemplate.engine;
18-
import static com.tml.otowbackend.engine.generator.template.java.InitTemplate.reqPackagePath;
20+
import static com.tml.otowbackend.engine.generator.template.java.InitTemplate.*;
1921

2022
@Component
2123
public class SelectFunctionPack extends AbstrateFunctionPack {
@@ -28,34 +30,37 @@ protected FeaturePackage getFeaturePackage() {
2830
return new FeaturePackage("1004", "查询实体类");
2931
}
3032

31-
// controller的删除方法
3233
@Override
3334
protected void addMethodToController(ControllerTemplate controller) {
3435
controller.addGetMethod(getSelectMethod(), "/get/{id}");
3536
}
3637

3738
// controller-get 的 查询
3839
private MetaMethod getSelectMethod(){
39-
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, "id");
40-
MetaMethodParam metaMethodParam = new MetaMethodParam("Integer",reqUser.getAllPackagePath(), "id");
40+
MetaMethodParam metaMethodParam = new MetaMethodParam("Integer",null, "id");
4141
metaMethodParam.addAnnotations(List.of(Path_Variable));
4242
String body = "return " + String.format("%s.%s(%s);", getParamString("classLower"), selectServiceMethod, "id");
4343
MetaMethod metaMethod = new MetaMethod(selectServiceMethod, List.of(metaMethodParam), body);
44-
metaMethod.setReturnRes(getParamString("className"));
44+
metaMethod.setReturnRes(new VOTemplate(voPackagePath, getParamString("className")));
4545
return metaMethod;
4646
}
4747

48+
4849
@Override
4950
protected void addMethodToService(ServiceTemplate service) {
5051
MetaMethodParam metaMethodParam = new MetaMethodParam("Integer", "id");
51-
service.addMethod(selectServiceMethod, metaMethodParam);
52+
MetaMethod metaMethod = new MetaMethod(selectServiceMethod, List.of(metaMethodParam));
53+
metaMethod.setReturnRes(new VOTemplate(voPackagePath, getParamString("className")));
54+
service.addMethods(metaMethod);
5255
}
5356

5457
// serviceImpl的查找方法
5558
@Override
5659
protected void addMethodToServiceImpl(ServiceImplTemplate serviceImplTemplate) {
5760
SelectServiceMethodTemplate selectServiceMethodTemplate = new SelectServiceMethodTemplate(selectTemplateFilePath,getParamString("className"));
58-
MetaMethod metaMethod = new MetaMethod(engine.generate(selectServiceMethodTemplate));
61+
MetaMethodParam metaMethodParam = new MetaMethodParam("Integer",null, "id");
62+
MetaMethod metaMethod = new MetaMethod(selectServiceMethod, List.of(metaMethodParam), engine.generate(selectServiceMethodTemplate));
63+
metaMethod.setReturnRes(new VOTemplate(voPackagePath, getParamString("className")));
5964
serviceImplTemplate.addMethod(metaMethod);
6065
}
6166
}

src/main/java/com/tml/otowbackend/engine/generator/funpack/pack/UpdateFunctionPack.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.tml.otowbackend.engine.generator.funpack.pack;
22

3+
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
34
import com.tml.otowbackend.engine.ai.result.FeaturePackage;
45
import com.tml.otowbackend.engine.generator.funpack.AbstrateFunctionPack;
6+
import com.tml.otowbackend.engine.generator.template.java.method.AddServiceMethodTemplate;
57
import com.tml.otowbackend.engine.generator.template.java.method.UpdateServiceMethodTemplate;
68
import com.tml.otowbackend.engine.generator.template.java.model.ReqTemplate;
79
import com.tml.otowbackend.engine.generator.template.java.service.ControllerTemplate;
@@ -31,26 +33,30 @@ protected FeaturePackage getFeaturePackage() {
3133
// controller的添加方法
3234
@Override
3335
protected void addMethodToController(ControllerTemplate controller) {
34-
controller.addPostMethod(getUpdateMethod(), "/update/user");
36+
controller.addPostMethod(getUpdateMethod(), "/update"+getParamString("className"));
3537
}
3638
// controller-post 的 更新
3739
private MetaMethod getUpdateMethod(){
3840
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, getParamString("className"));
39-
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(),reqUser.getAllPackagePath(), reqUser.getClassName().toLowerCase());
41+
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(),reqUser.getAllPackagePath(), StringUtils.firstToLowerCase(reqUser.getClassName()));
4042
metaMethodParam.addAnnotations(List.of(REQUEST_BODY));
4143
String body = String.format("%s.%s(%s);", getParamString("classLower"), updateServiceMethod, metaMethodParam.getName());
4244
return new MetaMethod(updateServiceMethod, List.of(metaMethodParam), body);
4345
}
4446

4547
@Override
4648
protected void addMethodToService(ServiceTemplate service) {
47-
service.addMethods(updateServiceMethod, List.of((MetaMethodParam) getParam("metaMethodParam")));
49+
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, getParamString("className"));
50+
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(),reqUser.getAllPackagePath(), StringUtils.firstToLowerCase(reqUser.getClassName()));
51+
service.addMethods(updateServiceMethod, List.of(metaMethodParam));
4852
}
4953

5054
@Override
5155
protected void addMethodToServiceImpl(ServiceImplTemplate serviceImplTemplate) {
56+
ReqTemplate reqUser = new ReqTemplate(reqPackagePath, getParamString("className"));
57+
MetaMethodParam metaMethodParam = new MetaMethodParam(reqUser.getClassName(),reqUser.getAllPackagePath(), StringUtils.firstToLowerCase(reqUser.getClassName()));
5258
UpdateServiceMethodTemplate updateServiceMethodTemplate = new UpdateServiceMethodTemplate(updateTemplateFilePath, getParamString("className"));
53-
MetaMethod metaMethod = new MetaMethod(engine.generate(updateServiceMethodTemplate));
59+
MetaMethod metaMethod = new MetaMethod(updateServiceMethod, List.of(metaMethodParam), engine.generate(updateServiceMethodTemplate));
5460
serviceImplTemplate.addMethod(metaMethod);
5561
}
5662
}

src/main/java/com/tml/otowbackend/engine/generator/template/java/InitTemplate.java

Lines changed: 57 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
import com.tml.otowbackend.engine.generator.engine.VelocityCodeEngine;
1010
import com.tml.otowbackend.engine.generator.template.VelocityOTOWTemplate;
1111
import com.tml.otowbackend.engine.generator.template.java.model.EntityTemplate;
12+
import com.tml.otowbackend.engine.generator.template.java.model.ReqTemplate;
13+
import com.tml.otowbackend.engine.generator.template.java.model.VOTemplate;
1214
import com.tml.otowbackend.engine.generator.template.java.service.ControllerTemplate;
1315
import com.tml.otowbackend.engine.generator.template.java.service.MapperTemplate;
1416
import com.tml.otowbackend.engine.generator.template.java.service.ServiceImplTemplate;
1517
import com.tml.otowbackend.engine.generator.template.java.service.ServiceTemplate;
1618
import com.tml.otowbackend.engine.generator.template.meta.MetaAnnotation;
17-
import com.tml.otowbackend.engine.generator.template.meta.MetaMethodParam;
1819
import com.tml.otowbackend.engine.generator.template.meta.MetalField;
1920
import lombok.NoArgsConstructor;
2021

@@ -27,28 +28,44 @@
2728
@NoArgsConstructor
2829
public class InitTemplate {
2930

30-
public static final String entityPackagePath = "io.github.geniusay.velocity.generate";
31-
public static final String servicePackagePath = "io.github.geniusay.velocity.generate.service";
32-
public static final String reqPackagePath = "io.github.geniusay.velocity.generate.pojo.req";
33-
public static final String mapperPackagePath = "io.github.geniusay.velocity.generate.mapper";
34-
public static final String serviceImplPackagePath = "io.github.geniusay.velocity.generate.service.impl";
31+
public static String entityPackagePath = "model.entity";
32+
public static String controllerPackagePath = "controller";
33+
public static String servicePackagePath = "service";
34+
public static String reqPackagePath = "model.req";
35+
public static String voPackagePath = "model.vo";
36+
public static String mapperPackagePath = "mapper";
37+
public static String serviceImplPackagePath = "service.impl";
3538

3639
public static VelocityCodeEngine engine = VelocityCodeEngine.getCodeEngine();
3740

41+
42+
public String prefix;
3843
public FuncPackManager funcPackManager;
3944
public String className;
4045
public String tableName;
4146
public String describe;
42-
public LinkedList<MetalField> fields;
47+
public LinkedList<MetalField> fields = new LinkedList<>();
48+
public LinkedList<MetalField> fieldsVO = new LinkedList<>();
49+
public LinkedList<MetalField> fieldsReq = new LinkedList<>();
4350
public List<String> featureIds;
4451

4552
private ServiceTemplate serviceTemplate;
4653
private ControllerTemplate controllerTemplate;
4754
private ServiceImplTemplate serviceImplTemplate;
4855
private MapperTemplate mapperTemplate;
4956
private EntityTemplate entityTemplate;
50-
51-
public InitTemplate(FuncPackManager funcPackManager, String className, String tableName, String describe, LinkedList<MetalField> fields, List<String> featureIds) {
57+
private ReqTemplate entityReqTemplate;
58+
private VOTemplate entityVOTemplate;
59+
60+
public InitTemplate(String prefix, FuncPackManager funcPackManager, String className, String tableName, String describe, LinkedList<MetalField> fields, List<String> featureIds) {
61+
this.prefix = prefix;
62+
this.entityPackagePath = prefix + entityPackagePath;
63+
this.servicePackagePath = prefix + servicePackagePath;
64+
this.reqPackagePath = prefix + reqPackagePath;
65+
this.voPackagePath = prefix + voPackagePath;
66+
this.mapperPackagePath = prefix + mapperPackagePath;
67+
this.serviceImplPackagePath = prefix + serviceImplPackagePath;
68+
this.controllerPackagePath = prefix + controllerPackagePath;
5269
this.funcPackManager = funcPackManager;
5370
this.className = className;
5471
this.tableName = tableName;
@@ -58,8 +75,16 @@ public InitTemplate(FuncPackManager funcPackManager, String className, String ta
5875
}
5976

6077
public void initTemplate() {
78+
// 将属性添加到新集合中 给req、VO使用
79+
for (MetalField field : fields) {
80+
MetalField clone = field.getClone();
81+
fieldsReq.add(clone);
82+
fieldsVO.add(clone);
83+
}
6184
judgeMetalField();
6285
entityTemplate = getEntityTemplate();
86+
entityReqTemplate = getEntityReqTemplate();
87+
entityVOTemplate = getEntityVOTemplate();
6388
mapperTemplate = getMapperTemplate();
6489
serviceTemplate = getServiceTemplate();
6590
serviceImplTemplate = getServiceImplTemplate();
@@ -73,6 +98,12 @@ private String generateStringWithTemplate(VelocityOTOWTemplate template) {
7398
public String generateEntity() {
7499
return generateStringWithTemplate(entityTemplate);
75100
}
101+
public String generateEntityReq(){
102+
return generateStringWithTemplate(entityReqTemplate);
103+
}
104+
public String generateEntityVO(){
105+
return generateStringWithTemplate(entityVOTemplate);
106+
}
76107

77108
public String generateMapper() {
78109
return generateStringWithTemplate(mapperTemplate);
@@ -97,16 +128,29 @@ private EntityTemplate getEntityTemplate() {
97128
return entityTemplate;
98129
}
99130

131+
// 根据给定的实体类名、字段生成实体Req模板
132+
private ReqTemplate getEntityReqTemplate() {
133+
ReqTemplate reqTemplate = new ReqTemplate(reqPackagePath,className);
134+
reqTemplate.addModelFields(fieldsReq);
135+
return reqTemplate;
136+
}
137+
138+
// 根据给定的实体类名、字段生成实体VO模板
139+
private VOTemplate getEntityVOTemplate() {
140+
VOTemplate voTemplate = new VOTemplate(voPackagePath,className);
141+
voTemplate.addModelFields(fieldsVO);
142+
return voTemplate;
143+
}
144+
100145
private MapperTemplate getMapperTemplate() {
101146
return new MapperTemplate(mapperPackagePath, className, entityTemplate);
102147
}
103148

104149
private ServiceTemplate getServiceTemplate() {
105150
ServiceTemplate userService = new ServiceTemplate(servicePackagePath, className);
106-
MetaMethodParam metaMethodParam = new MetaMethodParam(className, userService.getAllPackagePath(), className.toLowerCase());
107151
for (String featureId : featureIds) {
108152
AbstrateFunctionPack pack = funcPackManager.getFunctionPackById(featureId);
109-
pack.addParams("metaMethodParam", metaMethodParam);
153+
pack.addParams("className", className);
110154
pack.generateService(userService);
111155
}
112156
return userService;
@@ -124,9 +168,9 @@ private ServiceImplTemplate getServiceImplTemplate() {
124168
}
125169

126170
private ControllerTemplate getControllerTemplate() {
127-
ControllerTemplate userController = new ControllerTemplate(entityPackagePath, className, "/" + className.toLowerCase());
171+
ControllerTemplate userController = new ControllerTemplate(controllerPackagePath, className, "/" + className.toLowerCase());
128172
userController.addService(serviceTemplate);
129-
String classLower = serviceTemplate.getClassName().toLowerCase();
173+
String classLower = StringUtils.firstToLowerCase(serviceTemplate.getClassName());
130174
for (String featureId : featureIds) {
131175
AbstrateFunctionPack pack = funcPackManager.getFunctionPackById(featureId);
132176
pack.addParams("className", className);

src/main/java/com/tml/otowbackend/engine/generator/template/java/InterfaceTemplate.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ public void addMethods(List<MetaMethod> metaMethods) {
222222
* @param metaMethod 接口方法
223223
*/
224224
public void addMethods(MetaMethod metaMethod) {
225+
addImportAndCheck(metaMethod);
225226
this.methods.add(metaMethod);
226227
}
227228

src/main/java/com/tml/otowbackend/engine/generator/template/java/method/AddServiceMethodTemplate.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.tml.otowbackend.engine.generator.template.java.method;
22

3+
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
34
import com.tml.otowbackend.engine.generator.template.java.MethodTemplate;
45
import com.tml.otowbackend.engine.generator.template.meta.MetaMethod;
56
import org.apache.velocity.VelocityContext;
@@ -27,8 +28,8 @@ public MetaMethod generateMethod() {
2728
@Override
2829
public VelocityContext getContext() {
2930
VelocityContext context = new VelocityContext();
30-
context.put("entityClassName",entityClassName);
31-
context.put("entityClassNameLower",entityClassName.toLowerCase());
31+
context.put("entityClassName", entityClassName);
32+
context.put("entityClassNameLower", StringUtils.firstToLowerCase(entityClassName));
3233
return context;
3334
}
3435
}

0 commit comments

Comments
 (0)