Skip to content

Commit f3bf80a

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents baf556f + dbe2a4b commit f3bf80a

26 files changed

+256
-339
lines changed

otow-frame/springbootframe.zip

14.9 KB
Binary file not shown.

src/main/java/com/tml/otowbackend/controller/generate/SupportedController.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,15 @@
22

33
import com.tml.otowbackend.core.anno.TokenRequire;
44
import com.tml.otowbackend.engine.ai.result.FeaturePackage;
5-
import com.tml.otowbackend.engine.generator.funpack.FuncPackManager;
65
import com.tml.otowbackend.engine.otow.SupportedLanguages;
76
import com.tml.otowbackend.engine.tree.common.R;
87
import com.tml.otowbackend.service.FeaturePackageService;
9-
import com.tml.otowbackend.service.Impl.IFeaturePackageService;
108
import lombok.RequiredArgsConstructor;
119
import org.springframework.validation.annotation.Validated;
1210
import org.springframework.web.bind.annotation.GetMapping;
1311
import org.springframework.web.bind.annotation.RequestMapping;
1412
import org.springframework.web.bind.annotation.RestController;
1513

16-
import javax.annotation.Resource;
1714
import java.util.List;
1815
import java.util.Map;
1916

src/main/java/com/tml/otowbackend/engine/generator/OTOWGenerator.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/main/java/com/tml/otowbackend/engine/generator/OTOWResourceManager.java

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/main/java/com/tml/otowbackend/engine/generator/funpack/AbstrateFunctionPack.java renamed to src/main/java/com/tml/otowbackend/engine/generator/core/AbstrateFunctionPack.java

Lines changed: 19 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.tml.otowbackend.engine.generator.funpack;
1+
package com.tml.otowbackend.engine.generator.core;
22

33
import com.tml.otowbackend.engine.ai.result.FeaturePackage;
44
import com.tml.otowbackend.engine.generator.template.java.service.ControllerTemplate;
@@ -11,68 +11,49 @@
1111

1212
@Component
1313
public abstract class AbstrateFunctionPack implements FunctionPack {
14-
protected Map<String, Object> dataMap = new HashMap<>();
14+
15+
// 用于传递数据到功能包里面
16+
protected Map<String, String> dataMap = new HashMap<>();
17+
public void addParams(String key, String value) {
18+
dataMap.put(key, value);
19+
}
20+
public String getParam(String key) {
21+
return dataMap.get(key);
22+
}
1523

1624
protected abstract FeaturePackage getFeaturePackage();
1725

18-
// 生成controller类
1926
@Override
20-
public Object generateController(Object object) {
27+
public void handleController(Object object) {
2128
ControllerTemplate controller = (ControllerTemplate) object;
22-
// 添加方法
2329
addMethodToController(controller);
24-
return null;
2530
}
26-
27-
// 添加方法到controller中 可重写
2831
protected void addMethodToController(ControllerTemplate controller) {}
2932

30-
public void addParams(String key, Object value) {
31-
dataMap.put(key, value);
32-
}
33-
34-
public Object getParam(String key) {
35-
return dataMap.get(key);
36-
}
37-
public String getParamString(String key) {
38-
return (String)dataMap.get(key);
39-
}
40-
4133
@Override
42-
public Object generateService(Object object) {
34+
public void handleService(Object object) {
4335
ServiceTemplate service = (ServiceTemplate) object;
4436
addMethodToService(service);
45-
return null;
4637
}
4738
protected void addMethodToService(ServiceTemplate service) {}
4839

4940
@Override
50-
public Object generateServiceImpl(Object object) {
51-
ServiceImplTemplate serviceImplTemplate = (ServiceImplTemplate) object;
52-
addMethodToServiceImpl(serviceImplTemplate);
53-
return null;
41+
public void handleServiceImpl(Object object) {
42+
ServiceImplTemplate serviceImpl = (ServiceImplTemplate) object;
43+
addMethodToServiceImpl(serviceImpl);
5444
}
55-
56-
protected void addMethodToServiceImpl(ServiceImplTemplate serviceImplTemplate) {
57-
}
58-
59-
@Override
60-
public Object generateMapper(Object object) {
61-
return null;
45+
protected void addMethodToServiceImpl(ServiceImplTemplate serviceImpl) {
6246
}
6347

6448
@Override
65-
public Object generateApplication(Object object) {
66-
return null;
49+
public void handleMapper(Object object) {
6750
}
6851

6952
@Override
70-
public Object generateApplicationConfig(Object object) {
71-
return null;
53+
public void handleApplicationConfig(Object object) {
7254
}
7355

7456
@Override
75-
public Object generatePomConfig(Object object) {
76-
return null;
57+
public void handlePomConfig(Object object) {
7758
}
7859
}

src/main/java/com/tml/otowbackend/engine/generator/template/java/InitTemplate.java renamed to src/main/java/com/tml/otowbackend/engine/generator/core/ClassTemplateFactory.java

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
package com.tml.otowbackend.engine.generator.template.java;
1+
package com.tml.otowbackend.engine.generator.core;
22

33
import com.baomidou.mybatisplus.annotation.FieldFill;
44
import com.baomidou.mybatisplus.annotation.TableField;
55
import com.baomidou.mybatisplus.annotation.TableId;
66
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
7-
import com.tml.otowbackend.engine.generator.funpack.AbstrateFunctionPack;
8-
import com.tml.otowbackend.engine.generator.funpack.FuncPackManager;
97
import com.tml.otowbackend.engine.generator.engine.VelocityCodeEngine;
108
import com.tml.otowbackend.engine.generator.template.VelocityOTOWTemplate;
119
import com.tml.otowbackend.engine.generator.template.java.model.EntityTemplate;
@@ -26,7 +24,7 @@
2624
import static com.tml.otowbackend.engine.generator.utils.MetalUtils.getDescribe;
2725

2826
@NoArgsConstructor
29-
public class InitTemplate {
27+
public class ClassTemplateFactory {
3028

3129
public static String entityPackagePath = "model.entity";
3230
public static String controllerPackagePath = "controller";
@@ -38,7 +36,7 @@ public class InitTemplate {
3836
public static VelocityCodeEngine engine = VelocityCodeEngine.getCodeEngine();
3937

4038
public String prefix;
41-
public FuncPackManager funcPackManager;
39+
public FunctionPackManager functionPackManager;
4240
public String className;
4341
public String tableName;
4442
public String describe;
@@ -55,9 +53,9 @@ public class InitTemplate {
5553
private ReqTemplate entityReqTemplate;
5654
private VOTemplate entityVOTemplate;
5755

58-
public InitTemplate(String prefix, FuncPackManager funcPackManager, String className, String tableName, String describe, LinkedList<MetalField> fields, List<String> featureIds) {
56+
public ClassTemplateFactory(String prefix, FunctionPackManager functionPackManager, String className, String tableName, String describe, LinkedList<MetalField> fields, List<String> featureIds) {
5957
this.prefix = prefix + ".";
60-
this.funcPackManager = funcPackManager;
58+
this.functionPackManager = functionPackManager;
6159
this.className = className;
6260
this.tableName = tableName;
6361
this.describe = describe;
@@ -66,13 +64,12 @@ public InitTemplate(String prefix, FuncPackManager funcPackManager, String class
6664
}
6765

6866
public void initTemplate() {
69-
// 将属性添加到新集合中 给req、VO使用
7067
for (MetalField field : fields) {
7168
MetalField clone = field.getClone();
7269
fieldsReq.add(clone);
7370
fieldsVO.add(clone);
7471
}
75-
judgeMetalField();
72+
enhanceMetalField(fields);
7673
entityTemplate = getEntityTemplate();
7774
entityReqTemplate = getEntityReqTemplate();
7875
entityVOTemplate = getEntityVOTemplate();
@@ -85,43 +82,47 @@ public void initTemplate() {
8582
private String generateStringWithTemplate(VelocityOTOWTemplate template) {
8683
return engine.generate(template);
8784
}
85+
8886
public String generateEntity() {
8987
return generateStringWithTemplate(entityTemplate);
9088
}
91-
public String generateEntityReq(){
89+
90+
public String generateEntityReq() {
9291
return generateStringWithTemplate(entityReqTemplate);
9392
}
94-
public String generateEntityVO(){
93+
94+
public String generateEntityVO() {
9595
return generateStringWithTemplate(entityVOTemplate);
9696
}
97+
9798
public String generateMapper() {
9899
return generateStringWithTemplate(mapperTemplate);
99100
}
101+
100102
public String generateService() {
101103
return generateStringWithTemplate(serviceTemplate);
102104
}
105+
103106
public String generateServiceImpl() {
104107
return generateStringWithTemplate(serviceImplTemplate);
105108
}
109+
106110
public String generateController() {
107111
return generateStringWithTemplate(controllerTemplate);
108112
}
109113

110-
// 根据给定的实体类名、字段生成实体模板
111114
private EntityTemplate getEntityTemplate() {
112115
EntityTemplate entityTemplate = new EntityTemplate(prefix + entityPackagePath, className, tableName, describe);
113116
entityTemplate.addModelFields(fields);
114117
return entityTemplate;
115118
}
116119

117-
// 根据给定的实体类名、字段生成实体Req模板
118120
private ReqTemplate getEntityReqTemplate() {
119-
ReqTemplate reqTemplate = new ReqTemplate(prefix + reqPackagePath,className);
121+
ReqTemplate reqTemplate = new ReqTemplate(prefix + reqPackagePath, className);
120122
reqTemplate.addModelFields(fieldsReq);
121123
return reqTemplate;
122124
}
123125

124-
// 根据给定的实体类名、字段生成实体VO模板
125126
private VOTemplate getEntityVOTemplate() {
126127
VOTemplate voTemplate = new VOTemplate(prefix + voPackagePath, className);
127128
voTemplate.addModelFields(fieldsVO);
@@ -134,44 +135,43 @@ private MapperTemplate getMapperTemplate() {
134135

135136
private ServiceTemplate getServiceTemplate() {
136137
ServiceTemplate userService = new ServiceTemplate(prefix + servicePackagePath, className);
137-
for (String featureId : featureIds) {
138-
AbstrateFunctionPack pack = funcPackManager.getFunctionPackById(featureId);
138+
featureIds.forEach(featureId -> {
139+
AbstrateFunctionPack pack = functionPackManager.getFunctionPackById(featureId);
139140
pack.addParams("prefix", prefix);
140141
pack.addParams("className", className);
141-
pack.generateService(userService);
142-
}
142+
pack.handleService(userService);
143+
});
143144
return userService;
144145
}
145146

146147
private ServiceImplTemplate getServiceImplTemplate() {
147148
ServiceImplTemplate serviceImplTemplate = new ServiceImplTemplate(prefix + serviceImplPackagePath, className, serviceTemplate);
148149
serviceImplTemplate.addMapper(mapperTemplate);
149-
for (String featureId : featureIds) {
150-
AbstrateFunctionPack pack = funcPackManager.getFunctionPackById(featureId);
150+
featureIds.forEach(featureId -> {
151+
AbstrateFunctionPack pack = functionPackManager.getFunctionPackById(featureId);
151152
pack.addParams("className", className);
152153
pack.addParams("prefix", prefix);
153-
pack.generateServiceImpl(serviceImplTemplate);
154-
}
154+
pack.handleServiceImpl(serviceImplTemplate);
155+
});
155156
return serviceImplTemplate;
156157
}
157158

158159
private ControllerTemplate getControllerTemplate() {
159160
ControllerTemplate userController = new ControllerTemplate(prefix + controllerPackagePath, className, "/" + StringUtils.firstToLowerCase(className));
160161
userController.addService(serviceTemplate);
161-
String classLower = StringUtils.firstToLowerCase(serviceTemplate.getClassName());
162-
for (String featureId : featureIds) {
163-
AbstrateFunctionPack pack = funcPackManager.getFunctionPackById(featureId);
162+
String serviceName = StringUtils.firstToLowerCase(serviceTemplate.getClassName());
163+
featureIds.forEach(featureId -> {
164+
AbstrateFunctionPack pack = functionPackManager.getFunctionPackById(featureId);
164165
pack.addParams("prefix", prefix);
165166
pack.addParams("className", className);
166-
pack.addParams("classLower", classLower);
167-
pack.generateController(userController);
168-
}
167+
pack.addParams("serviceName", serviceName);
168+
pack.handleController(userController);
169+
});
169170
return userController;
170171
}
171172

172173
// 加强判断
173-
private void judgeMetalField() {
174-
174+
private void enhanceMetalField(LinkedList<MetalField> fields) {
175175
// 判断id 加入时间
176176
MetaAnnotation tableId = new MetaAnnotation(TableId.class);
177177
for (MetalField metalField : fields) {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.tml.otowbackend.engine.generator.core;
2+
3+
import com.tml.otowbackend.engine.generator.engine.VelocityCodeEngine;
4+
import com.tml.otowbackend.engine.generator.template.java.ApplicationYmlTemplate;
5+
import com.tml.otowbackend.engine.generator.template.java.PomConfigTemplate;
6+
import com.tml.otowbackend.engine.generator.template.java.service.ApplicationTemplate;
7+
import lombok.Data;
8+
9+
import java.util.Map;
10+
11+
@Data
12+
public class ConfigTemplateFactory {
13+
14+
private static VelocityCodeEngine engine = VelocityCodeEngine.getCodeEngine();
15+
16+
private ApplicationYmlTemplate ymlTemplate;
17+
private PomConfigTemplate pomConfigTemplate;
18+
19+
public ConfigTemplateFactory(){
20+
this.ymlTemplate = new ApplicationYmlTemplate();
21+
this.pomConfigTemplate = new PomConfigTemplate();
22+
}
23+
24+
public String generateApplication(String prefix, String systemName){
25+
ApplicationTemplate applicationTemplate = new ApplicationTemplate(prefix, systemName);
26+
return engine.generate(applicationTemplate);
27+
}
28+
29+
public String generateApplicationYml(){
30+
return engine.generate(ymlTemplate);
31+
}
32+
33+
public void addYml(String key, Object value){
34+
ymlTemplate.addYml(key, value);
35+
}
36+
37+
public String generatePomConfig(){
38+
return engine.generate(pomConfigTemplate);
39+
}
40+
41+
public void addPomDependency(Map<String, Object> pomConfigDependency){
42+
pomConfigTemplate.addDependency(pomConfigDependency);
43+
}
44+
45+
public void addPomProperties(Map<String, Object> pomConfigProperty){
46+
pomConfigTemplate.addDependency(pomConfigProperty);
47+
}
48+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.tml.otowbackend.engine.generator.core;
2+
3+
public interface FunctionPack {
4+
void handleController(Object object);
5+
void handleService(Object object);
6+
void handleServiceImpl(Object object);
7+
void handleMapper(Object object);
8+
void handleApplicationConfig(Object object);
9+
void handlePomConfig(Object object);
10+
}

src/main/java/com/tml/otowbackend/engine/generator/funpack/FuncPackManager.java renamed to src/main/java/com/tml/otowbackend/engine/generator/core/FunctionPackManager.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
1-
package com.tml.otowbackend.engine.generator.funpack;
1+
package com.tml.otowbackend.engine.generator.core;
22
import com.tml.otowbackend.engine.ai.result.FeaturePackage;
33
import org.springframework.beans.factory.annotation.Autowired;
44
import org.springframework.context.ApplicationContext;
55
import org.springframework.stereotype.Component;
66

7-
import java.util.ArrayList;
87
import java.util.HashMap;
98
import java.util.List;
109
import java.util.Map;
1110
import java.util.stream.Collectors;
1211

1312
@Component
14-
public class FuncPackManager {
13+
public class FunctionPackManager {
1514

1615
private final Map<String, AbstrateFunctionPack> functionPackMap = new HashMap<>();
1716
private final List<FeaturePackage> featurePackageList;
1817

1918
@Autowired
20-
public FuncPackManager(ApplicationContext applicationContext) {
19+
public FunctionPackManager(ApplicationContext applicationContext) {
2120
applicationContext.getBeansOfType(AbstrateFunctionPack.class).forEach((name, bean) -> {
2221
functionPackMap.put(bean.getFeaturePackage().getId(), bean);
2322
});

0 commit comments

Comments
 (0)