Skip to content

Commit 697edb2

Browse files
committed
修改代码生成器逻辑
1 parent 35422c7 commit 697edb2

File tree

12 files changed

+407
-245
lines changed

12 files changed

+407
-245
lines changed

src/main/java/com/company/project/generator/model/GenTableColumn.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.company.project.generator.model;
22

33
import cn.hutool.core.util.StrUtil;
4+
import com.google.common.base.CaseFormat;
45

56
/**
67
* 代码生成业务字段表 gen_table_column
@@ -43,6 +44,24 @@ public GenTableColumn(){
4344
/** JAVA字段名 */
4445
private String javaField;
4546

47+
private String javaFieldXML;
48+
49+
public String getJavaFieldBatchXML() {
50+
return "#{item."+this.getJavaField()+"}";
51+
}
52+
53+
private String javaFieldBatchXML;
54+
55+
public String getJavaFieldXML() {
56+
return "#{"+this.getJavaField()+"}";
57+
}
58+
59+
public String getJavaFieldGetSetName() {
60+
return CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, this.columnName.toLowerCase());
61+
}
62+
63+
private String javaFieldGetSetName;
64+
4665
/** 是否主键(1是) */
4766
private String isPk;
4867

src/test/java/CodeGenerator.java

Lines changed: 94 additions & 94 deletions
Large diffs are not rendered by default.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
/**
3+
* @Author:zhuoqianmingyue
4+
* @Date: 2020/6/21
5+
* @Description: 项目公共常量
6+
**/
7+
public final class CodeGeneratorConstant {
8+
9+
/**生成代码所在的基础包名称,可根据自己公司的项目修改(注意:这个配置修改之后需要手工修改src目录项目默认的包路径,使其保持一致,不然会找不到类)*/
10+
public static final String BASE_PACKAGE = "cn.zhuoqianmingyue";
11+
/**生成的Model所在包*/
12+
public static final String MODEL_PACKAGE = BASE_PACKAGE + ".model";
13+
/**生成的Mapper所在包*/
14+
public static final String MAPPER_PACKAGE = BASE_PACKAGE + ".dao";
15+
/**生成的Service所在包*/
16+
public static final String SERVICE_PACKAGE = BASE_PACKAGE + ".service";
17+
/**生成的ServiceImpl所在包*/
18+
public static final String SERVICE_IMPL_PACKAGE = SERVICE_PACKAGE + ".impl";
19+
/**生成的Controller所在包*/
20+
public static final String CONTROLLER_PACKAGE = BASE_PACKAGE + ".web";
21+
/**Mapper插件基础接口的完全限定名*/
22+
public static final String MAPPER_INTERFACE_REFERENCE = BASE_PACKAGE + ".common.core.BaseDao";
23+
}

src/test/java/com/company/project/generator/mapper/CodeGenneratorMapperTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public void selectTableColumnsByTableName() {
3030
for (GenTableColumn tableColumn : demoUserTableColumn) {
3131
String javaType = tableColumn.getJavaType();
3232
String javaField = tableColumn.getJavaField();
33+
String javaFieldGetSetName = tableColumn.getJavaFieldGetSetName();
34+
System.out.println(javaFieldGetSetName);
3335
System.out.println(javaType);
3436
System.out.println(javaField);
3537
}
Lines changed: 62 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,91 @@
1-
package ${basePackage}.web;
2-
1+
package ${basePackage}.${packageName}.web;
32
import ${basePackage}.core.Result;
43
import ${basePackage}.core.ResultGenerator;
5-
import ${basePackage}.model.${modelNameUpperCamel};
6-
import ${basePackage}.service.${modelNameUpperCamel}Service;
4+
import ${basePackage}.${packageName}.domain.${modelNameUpperCamel};
5+
import ${basePackage}.${packageName}.service.${modelNameUpperCamel}Service;
76
import com.github.pagehelper.PageHelper;
87
import com.github.pagehelper.PageInfo;
8+
import org.springframework.web.bind.annotation.PostMapping;
9+
import org.springframework.web.bind.annotation.RequestMapping;
10+
import org.springframework.web.bind.annotation.RequestParam;
11+
import org.springframework.web.bind.annotation.RestController;
12+
import org.springframework.beans.factory.annotation.Autowired;
13+
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
14+
import io.swagger.annotations.ApiOperation;
15+
import org.springframework.http.HttpStatus;
16+
import org.springframework.validation.annotation.Validated;
917
import org.springframework.web.bind.annotation.*;
10-
11-
import javax.annotation.Resource;
1218
import java.util.List;
13-
19+
import ${basePackage}.core.ControllerSupport;
20+
import ${basePackage}.core.Page;
1421
/**
15-
* Created by ${author} on ${date}.
16-
*/
22+
* @Author: ${author}
23+
* @Date: ${date}.
24+
* @Description:
25+
**/
1726
@RestController
1827
@RequestMapping("${baseRequestMapping}")
19-
public class ${modelNameUpperCamel}Controller {
20-
@Resource
28+
public class ${modelNameUpperCamel}Controller extends ControllerSupport<${modelNameUpperCamel}>{
29+
30+
@Autowired
2131
private ${modelNameUpperCamel}Service ${modelNameLowerCamel}Service;
2232

33+
@ApiOperation(value = "新增", notes = "新增")
34+
@ApiOperationSupport(author = "zhuoqianmingyue")
2335
@PostMapping
24-
public Result add(@RequestBody ${modelNameUpperCamel} ${modelNameLowerCamel}) {
36+
@ResponseStatus(HttpStatus.CREATED)
37+
public Result add(@RequestBody @Validated ${modelNameUpperCamel} ${modelNameLowerCamel}) {
2538
${modelNameLowerCamel}Service.save(${modelNameLowerCamel});
26-
return ResultGenerator.genSuccessResult();
39+
return sucess();
40+
}
41+
42+
@ApiOperation(value = "批量新增", notes = "批量新增")
43+
@PostMapping("/batch")
44+
public Result addList(@RequestBody List<${modelNameUpperCamel}> ${modelNameLowerCamel}List) {
45+
${modelNameLowerCamel}Service.saveBatch(${modelNameLowerCamel}List);
46+
return sucess();
2747
}
2848

49+
@ApiOperation(value = "删除", notes = "删除")
2950
@DeleteMapping("/{id}")
30-
public Result delete(@PathVariable Integer id) {
51+
public Result delete(@PathVariable long id) {
3152
${modelNameLowerCamel}Service.deleteById(id);
32-
return ResultGenerator.genSuccessResult();
53+
return sucess();
54+
}
55+
56+
@ApiOperation(value = "批量删除", notes = "批量删除")
57+
@DeleteMapping
58+
public Result deleteBatch(@RequestBody() List<Long> ids) {
59+
${modelNameLowerCamel}Service.deleteByIds(ids);
60+
return sucess();
3361
}
3462

63+
@ApiOperation(value = "修改", notes = "修改")
3564
@PutMapping
3665
public Result update(@RequestBody ${modelNameUpperCamel} ${modelNameLowerCamel}) {
3766
${modelNameLowerCamel}Service.update(${modelNameLowerCamel});
38-
return ResultGenerator.genSuccessResult();
67+
return sucess();
68+
}
69+
70+
@ApiOperation(value = "批量修改", notes = "批量修改")
71+
@PutMapping("/batch")
72+
public Result updateList(@RequestBody List<${modelNameUpperCamel}> ${modelNameLowerCamel}List) {
73+
${modelNameLowerCamel}Service.updateBatch(${modelNameLowerCamel}List);
74+
return sucess();
3975
}
4076

77+
@ApiOperation(value = "根据ID查询", notes = "根据ID查询")
4178
@GetMapping("/{id}")
42-
public Result detail(@PathVariable Integer id) {
43-
${modelNameUpperCamel} ${modelNameLowerCamel} = ${modelNameLowerCamel}Service.findById(id);
44-
return ResultGenerator.genSuccessResult(${modelNameLowerCamel});
79+
public Result getById(@PathVariable("id") Long id){
80+
${modelNameUpperCamel} ${modelNameLowerCamel} = ${modelNameLowerCamel}Service.getById(id);
81+
return sucess(${modelNameLowerCamel});
4582
}
4683

84+
@ApiOperation(value = "分页查询",notes = "分页查询",responseContainer = "List",response = PageInfo.class)
4785
@GetMapping
48-
public Result list(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size) {
49-
PageHelper.startPage(page, size);
50-
List<${modelNameUpperCamel}> list = ${modelNameLowerCamel}Service.findAll();
51-
PageInfo pageInfo = new PageInfo(list);
52-
return ResultGenerator.genSuccessResult(pageInfo);
86+
public Result queryist(${modelNameUpperCamel} ${modelNameLowerCamel}, Page page) {
87+
PageHelper.startPage(page.getPageNum(), page.getPageSize());
88+
List<${modelNameUpperCamel}> ${modelNameLowerCamel}List = ${modelNameLowerCamel}Service.find(${modelNameLowerCamel});
89+
return pageSucess(${modelNameLowerCamel}List);
5390
}
54-
}
91+
}

src/test/resources/generator/template/controller.ftl

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package ${basePackage}.web;
1+
package ${basePackage}.${packageName}.web;
22
import ${basePackage}.core.Result;
33
import ${basePackage}.core.ResultGenerator;
4-
import ${basePackage}.model.${modelNameUpperCamel};
5-
import ${basePackage}.service.${modelNameUpperCamel}Service;
4+
import ${basePackage}.${packageName}.model.${modelNameUpperCamel};
5+
import ${basePackage}.${packageName}.service.${modelNameUpperCamel}Service;
66
import com.github.pagehelper.PageHelper;
77
import com.github.pagehelper.PageInfo;
88
import org.springframework.web.bind.annotation.PostMapping;
@@ -14,8 +14,10 @@ import javax.annotation.Resource;
1414
import java.util.List;
1515

1616
/**
17-
* Created by ${author} on ${date}.
18-
*/
17+
* @Author: ${author}
18+
* @Date: ${date}.
19+
* @Description:
20+
**/
1921
@RestController
2022
@RequestMapping("${baseRequestMapping}")
2123
public class ${modelNameUpperCamel}Controller {

src/test/resources/generator/template/controller1.ftl

Lines changed: 0 additions & 86 deletions
This file was deleted.
Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,45 @@
1-
package ${basePackage}.service;
2-
import ${basePackage}.model.${modelNameUpperCamel};
3-
import ${basePackage}.core.Service;
4-
1+
package ${basePackage}.${packageName}.domain;
2+
import com.company.project.core.BasicEntity;
3+
import io.swagger.annotations.ApiModelProperty;
4+
import java.util.Date;
55

66
/**
7-
* Created by ${author} on ${date}.
8-
*/
9-
public interface ${modelNameUpperCamel}Service extends Service<${modelNameUpperCamel}> {
7+
* @Author: ${author}
8+
* @Date: ${date}.
9+
* @Description:
10+
**/
11+
public class ${modelNameUpperCamel} extends BasicEntity{
12+
13+
<#list table.columns as column>
14+
<#if column.columnName != "update_time" && column.columnName != "create_time"
15+
&& column.columnName != "update_by" && column.columnName != "create_by" && column.columnName != "delete_flag">
16+
17+
<#if (column.javaType == "Long")>
18+
@ApiModelProperty(value="${column.columnComment}",name="${column.javaField}",example="1")
19+
</#if>
20+
<#if (column.javaType == "String")>
21+
@ApiModelProperty(value="${column.columnComment}",name="${column.javaField}",example="string")
22+
</#if>
23+
<#if (column.javaType == "Integer")>
24+
@ApiModelProperty(value="${column.columnComment}",name="${column.javaField}",example="1")
25+
</#if>
26+
<#if (column.javaType == "Date")>
27+
@ApiModelProperty(value="${column.columnComment}",name="${column.javaField}",example="2020-01-01")
28+
</#if>
29+
private ${column.javaType} ${column.javaField};
30+
</#if>
31+
</#list>
32+
33+
<#list table.columns as column>
34+
<#if column.columnName != "update_time" && column.columnName != "create_time"
35+
&& column.columnName != "update_by" && column.columnName != "create_by" && column.columnName != "delete_flag">
1036

11-
}
37+
public ${column.javaType} get${column.javaFieldGetSetName}(){
38+
return ${column.javaField};
39+
}
40+
public void set${column.javaFieldGetSetName}(${column.javaType} ${column.javaField}){
41+
this.${column.javaField} = ${column.javaField};
42+
}
43+
</#if>
44+
</#list>
45+
}
Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1-
package ${basePackage}.service;
2-
import ${basePackage}.model.${modelNameUpperCamel};
3-
import ${basePackage}.core.Service;
1+
package ${basePackage}.${packageName}.mapper;
2+
import ${basePackage}.${packageName}.domain.${modelNameUpperCamel};
3+
import ${basePackage}.core.IMapper;
4+
import org.apache.ibatis.annotations.Mapper;
45

56

67
/**
7-
* Created by ${author} on ${date}.
8-
*/
9-
public interface ${modelNameUpperCamel}Service extends Service<${modelNameUpperCamel}> {
8+
* @Author: ${author}
9+
* @Date: ${date}.
10+
* @Description:
11+
**/
12+
@Mapper
13+
public interface ${modelNameUpperCamel}Mapper extends IMapper<${modelNameUpperCamel}>{
1014

1115
}

0 commit comments

Comments
 (0)