tj
2025-06-05 2d549a04870d1315868a7cf19952b64e8071e711
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package ${package.Controller};
 
 
import io.github.talelin.autoconfigure.exception.NotFoundException;
<#if package.Controller?split(".")?last == "cms">
import io.github.talelin.core.annotation.LoginRequired;
</#if>
import mybatis.common.cloudroam.LinPage;
import util.common.cloudroam.PageUtil;
import query.dto.cloudroam.BasePageDTO;
import ${package.Service}.${table.serviceName};
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import ${package.Entity}.${entity};
import com.cloudroam.vo.CreatedVO;
import com.cloudroam.vo.DeletedVO;
import com.cloudroam.vo.PageResponseVO;
import com.cloudroam.vo.UpdatedVO;
 
import javax.validation.constraints.Positive;
 
<#if restControllerStyle>
import org.springframework.web.bind.annotation.RestController;
<#else>
import org.springframework.stereotype.Controller;
</#if>
<#if superControllerClassPackage??>
import ${superControllerClassPackage};
</#if>
 
/**
<#if table.comment != "">
 * ${table.comment!}前端控制器
 * 注意:该代码生成器只实现了针对单表的新增、更新、删除、查询单个实体对象和分页查询多个实体对象的方法,如果业务较为复杂,不建议使用代码生成器!
 *
</#if>
* @author ${author}
* @since ${date}
*/
<#if restControllerStyle>
@RestController
<#else>
@Controller
</#if>
@RequestMapping("/${package.Controller?split(".")?last}<#if package.ModuleName?? && package.ModuleName != "">/${package.ModuleName}</#if>/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen?replace("-do", "")}<#else>${table.entityPath?replace("DO", "")}</#if>")
<#if kotlin>
class ${table.controllerName}<#if superControllerClass??> : ${superControllerClass}()</#if>
<#else>
<#if superControllerClass??>
public class ${table.controllerName} extends ${superControllerClass} {
<#else>
public class ${table.controllerName} {
</#if>
 
    @Autowired
    private ${table.serviceName} ${table.serviceName?uncap_first};
 
    <#if package.Controller?split(".")?last == "cms">
    @LoginRequired
    </#if>
    @PostMapping("")
    public CreatedVO create(@RequestBody ${entity} dto) {
        ${entity} ${entity?uncap_first} = new ${entity}();
        BeanUtils.copyProperties(dto, ${entity?uncap_first});
        ${table.serviceName?uncap_first}.save(${entity?uncap_first});
        return new CreatedVO();
    }
 
    <#if package.Controller?split(".")?last == "cms">
    @LoginRequired
    </#if>
    @PutMapping("/{id}")
    public UpdatedVO update(
            @PathVariable @Positive(message = "{id.positive}") Integer id,
            @RequestBody ${entity} dto
    ) {
        get(id);
        dto.setId(id);
        ${table.serviceName?uncap_first}.updateById(dto);
        return new UpdatedVO();
    }
 
    <#if package.Controller?split(".")?last == "cms">
    @LoginRequired
    </#if>
    @DeleteMapping("/{id}")
    public DeletedVO delete(@PathVariable @Positive(message = "{id.positive}") Integer id) {
        ${entity} ${entity?uncap_first} = get(id);
        ${table.serviceName?uncap_first}.removeById(${entity?uncap_first}.getId());
        return new DeletedVO();
    }
 
    @GetMapping("/{id}")
    <#if package.Controller?split(".")?last == "cms">
    @LoginRequired
    </#if>
    public ${entity} get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) {
        ${entity} ${entity?uncap_first} = ${table.serviceName?uncap_first}.getById(id);
        if (${entity?uncap_first} == null) {
            throw new NotFoundException();
        }
        return ${entity?uncap_first};
    }
 
    @GetMapping("/page")
    <#if package.Controller?split(".")?last == "cms">
    @LoginRequired
    </#if>
    public PageResponseVO<${entity}> page(
            @Validated BasePageDTO dto
    ) {
        return PageUtil.build(${table.serviceName?uncap_first}.page(new Page<>(dto.getPage(), dto.getCount()), null));
    }
 
}
</#if>