Skip to content

Commit cffaac2

Browse files
authored
Merge pull request #129 from starplatinum3/master
新建了jpa-starp模板,是对jpa模板的一些小修改。感谢@starplatinum3的贡献
2 parents 732dd24 + 69a0ded commit cffaac2

File tree

5 files changed

+214
-1
lines changed

5 files changed

+214
-1
lines changed

generator-web/src/main/java/com/softdev/system/generator/controller/GeneratorController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public ReturnT generateCode(@RequestBody ParamInfo paramInfo) throws Exception {
8484

8585
//3.generate the code by freemarker templates with parameters . Freemarker根据参数和模板生成代码
8686
Map<String, String> result = generatorService.getResultByParams(paramInfo.getOptions());
87+
log.info("result {}",result);
8788
log.info("table:{} - time:{} ", MapUtil.getString(result,"tableName"),new Date());
8889
return ReturnT.ok().put("outputJson",result);
8990
}

generator-web/src/main/resources/template.json

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,5 +229,25 @@
229229
"description": "rr-service"
230230
}
231231
]
232+
},
233+
234+
{
235+
"group": "jpa-starp",
236+
"templates": [{
237+
"id": "101",
238+
"name": "starp-entity",
239+
"description": "entity"
240+
},
241+
{
242+
"id": "102",
243+
"name": "starp-repository",
244+
"description": "repository"
245+
},
246+
{
247+
"id": "103",
248+
"name": "starp-jpa-controller",
249+
"description": "jpacontroller"
250+
}
251+
]
232252
}
233-
]
253+
]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.entity;</#if>
2+
3+
<#if isAutoImport?exists && isAutoImport==true>
4+
<#if isLombok?exists && isLombok==true>import lombok.Data;</#if>
5+
import java.util.Date;
6+
import java.util.List;
7+
import java.io.Serializable;
8+
import javax.persistence.Column;
9+
import javax.persistence.Entity;
10+
import javax.persistence.Id;
11+
import javax.persistence.Table;
12+
import javax.persistence.GeneratedValue;
13+
<#if isSwagger?exists && isSwagger==true>
14+
import io.swagger.annotations.ApiModel;
15+
import io.swagger.annotations.ApiModelProperty;</#if>
16+
</#if>
17+
/**
18+
* @description ${classInfo.classComment}
19+
* @author ${authorName}
20+
* @date ${.now?string('yyyy-MM-dd')}
21+
*/
22+
@Entity
23+
@Builder
24+
@AllArgsConstructor
25+
<#if isLombok?exists && isLombok==true>@Data</#if>
26+
<#if isComment?exists && isComment==true>@Table(name="${classInfo.originTableName}")</#if><#if isSwagger?exists && isSwagger==true>
27+
@ApiModel("${classInfo.classComment}")</#if>
28+
public class ${classInfo.className} implements Serializable {
29+
30+
private static final long serialVersionUID = 1L;
31+
32+
@Id
33+
@ApiModelProperty("id")
34+
@GeneratedValue(strategy = GenerationType.IDENTITY)
35+
private Integer id;
36+
37+
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
38+
<#list classInfo.fieldList as fieldItem >
39+
<#if isComment?exists && isComment==true>/**
40+
* ${fieldItem.fieldComment}
41+
*/</#if><#if isSwagger?exists && isSwagger==true>
42+
@ApiModelProperty("${fieldItem.fieldComment}")</#if>
43+
<#if isComment?exists && isComment==true>@Column(name="${fieldItem.columnName}")</#if>
44+
private ${fieldItem.fieldClass} ${fieldItem.fieldName};
45+
46+
</#list>
47+
public ${classInfo.className}() {
48+
}
49+
</#if>
50+
51+
<#if isLombok?exists && isLombok==false>
52+
public ${fieldItem.fieldClass} get${fieldItem.fieldName?cap_first}() {
53+
return ${fieldItem.fieldName};
54+
}
55+
56+
public void set${fieldItem.fieldName?cap_first}(${fieldItem.fieldClass} ${fieldItem.fieldName}) {
57+
this.${fieldItem.fieldName} = ${fieldItem.fieldName};
58+
}
59+
</#if>
60+
}
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.controller;</#if>
2+
<#if isAutoImport?exists && isAutoImport==true>
3+
import ${packageName}.entity.${classInfo.className};
4+
import ${packageName}.repository.${classInfo.className}Repository;
5+
import org.springframework.data.domain.Example;
6+
import org.springframework.data.domain.Pageable;
7+
import org.springframework.web.bind.annotation.RequestMapping;
8+
import org.springframework.web.bind.annotation.RequestParam;
9+
import org.springframework.data.domain.ExampleMatcher;
10+
import org.springframework.data.domain.PageRequest;
11+
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.web.bind.annotation.PostMapping;
13+
import org.springframework.web.bind.annotation.RestController;
14+
import java.util.List;
15+
import java.util.Map;
16+
import java.util.Optional;
17+
18+
</#if>
19+
/**
20+
* @description ${classInfo.classComment}
21+
* @author ${authorName}
22+
* @date ${.now?string('yyyy-MM-dd')}
23+
*/
24+
25+
@Slf4j
26+
@Api(tags = "${classInfo.className?uncap_first}")
27+
@CrossOrigin
28+
@RestController
29+
@RequestMapping("/${classInfo.className?uncap_first}")
30+
public class ${classInfo.className}Controller {
31+
32+
@Autowired
33+
private ${classInfo.className}Repository ${classInfo.className?uncap_first}Repository;
34+
35+
/**
36+
* 新增或编辑
37+
*/
38+
@PostMapping("/save")
39+
@ApiOperation(value = "save ${classInfo.className}", notes = "save ${classInfo.className}")
40+
public Object save(@RequestBody ${classInfo.className} ${classInfo.className?uncap_first}){
41+
try {
42+
return ReturnT.success(${classInfo.className?uncap_first}Repository.save(${classInfo.className?uncap_first}));
43+
} catch (Exception e) {
44+
e.printStackTrace();
45+
return ReturnT.error("保存失败");
46+
}
47+
48+
}
49+
50+
/**
51+
* 删除
52+
*/
53+
@PostMapping("/delete")
54+
@ApiOperation(value = "delete ${classInfo.className}", notes = "delete ${classInfo.className}")
55+
public Object delete(int id){
56+
Optional<${classInfo.className}> ${classInfo.className?uncap_first}=${classInfo.className?uncap_first}Repository.findById(id);
57+
if(${classInfo.className?uncap_first}.isPresent()){
58+
${classInfo.className?uncap_first}Repository.deleteById(id);
59+
return ${returnUtilSuccess}("删除成功");
60+
}else{
61+
return ${returnUtilFailure}("没有找到该对象");
62+
}
63+
}
64+
65+
/**
66+
* 查询
67+
*/
68+
@PostMapping("/find")
69+
@ApiOperation(value = "find ${classInfo.className} by id", notes = "find ${classInfo.className} by id")
70+
public Object find(int id){
71+
Optional<${classInfo.className}> ${classInfo.className?uncap_first}=${classInfo.className?uncap_first}Repository.findById(id);
72+
if(${classInfo.className?uncap_first}.isPresent()){
73+
return ${returnUtilSuccess}(${classInfo.className?uncap_first}.get());
74+
}else{
75+
return ${returnUtilFailure}("没有找到该对象");
76+
}
77+
}
78+
79+
/**
80+
* 分页查询
81+
*/
82+
@PostMapping("/list")
83+
@ApiOperation(value = "list ${classInfo.className}", notes = "list ${classInfo.className}")
84+
public Object list(@RequestBody ${classInfo.className} ${classInfo.className?uncap_first},
85+
@RequestParam(required = false, defaultValue = "0") int pageNumber,
86+
@RequestParam(required = false, defaultValue = "10") int pageSize) {
87+
88+
try {
89+
//创建匹配器,需要查询条件请修改此处代码
90+
ExampleMatcher matcher = ExampleMatcher.matchingAll();
91+
92+
//创建实例
93+
Example<${classInfo.className}> example = Example.of(${classInfo.className?uncap_first}, matcher);
94+
//分页构造
95+
Pageable pageable = PageRequest.of(pageNumber,pageSize);
96+
97+
return ReturnT.success(${classInfo.className?uncap_first}Repository.findAll(example, pageable));
98+
99+
} catch (Exception e) {
100+
e.printStackTrace();
101+
return ReturnT.error(e.getMessage());
102+
}
103+
104+
}
105+
106+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<#if isWithPackage?exists && isWithPackage==true>package ${packageName}.repository;</#if>
2+
<#if isAutoImport?exists && isAutoImport==true>import ${packageName}.entity.${classInfo.className};
3+
4+
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
5+
<#list classInfo.fieldList as fieldItem >
6+
<#if fieldItem.fieldClass == "Date">
7+
<#assign importDdate = true />
8+
</#if>
9+
</#list>
10+
</#if>
11+
import java.util.List;
12+
import org.springframework.data.jpa.repository.JpaRepository;
13+
import org.springframework.data.jpa.repository.Query;
14+
import org.springframework.stereotype.Repository;
15+
</#if>
16+
/**
17+
* @description ${classInfo.classComment}
18+
* @author ${authorName}
19+
* @date ${.now?string('yyyy-MM-dd')}
20+
*/
21+
@Repository
22+
public interface ${classInfo.className}Repository extends JpaRepository<${classInfo.className},Integer> {
23+
24+
25+
26+
}

0 commit comments

Comments
 (0)