主题
Controller 模板
占位符说明
| 占位符 | 说明 | 示例 |
|---|---|---|
{basePackage} | 项目基础包路径 | cn.szhn.poc.service |
{module} | 业务模块名称(小驼峰) | demostu, teacher |
{Xxx} | 业务实体名称(大驼峰) | DemoStu, Teacher |
{xxx} | 业务实体名称(小驼峰) | demoStu, teacher |
{业务名称} | 业务中文描述 | 学生, 教师 |
{XXX} | 业务实体名称(全大写) | DEMOSTU, TEACHER |
{作者名} | 代码作者 | 彭业庆 |
{yyyy-MM-dd} | 创建日期 | 2026-05-13 |
模板代码
java
package {basePackage}.business.{module}.controller;
import {basePackage}.business.{module}.manager.{Xxx}Manager;
import {basePackage}.business.{module}.model.vo.{Xxx}VO;
import {basePackage}.business.{module}.model.dto.{Xxx}PageDTO;
import {basePackage}.business.{module}.model.vo.{Xxx}QueryVO;
import {basePackage}.constants.RestPrefixConstant;
import cn.com.digitalhainan.common.common.dto.PaginationInfoResDTO;
import cn.com.digitalhainan.common.core.response.BaseResponse;
/**
* <p>{业务名称}管理控制器</p>
*
* @author {作者名}
* @since {yyyy-MM-dd}
*/
@Tag(name = "{业务名称}管理")
@RestController
@RequestMapping(RestPrefixConstant.{XXX}_REST_PREFIX)
public class {Xxx}Controller {
@Resource
private {Xxx}Manager {xxx}Manager;
@PostMapping("/page")
@Operation(summary = "分页查询{业务名称}列表")
public BaseResponse<PaginationInfoResDTO<{Xxx}PageDTO>, Object> queryPage(@RequestBody @Valid {Xxx}QueryVO vo) {
return BaseResponse.success({xxx}Manager.queryPage(vo));
}
@PostMapping("/add")
@Operation(summary = "新增{业务名称}")
public BaseResponse<String, Object> add(@RequestBody @Valid {Xxx}VO vo) {
return BaseResponse.success({xxx}Manager.add(vo));
}
@PostMapping("/update")
@Operation(summary = "修改{业务名称}")
public BaseResponse<Object, Object> update(@RequestBody @Valid {Xxx}VO vo) {
{xxx}Manager.updateById(vo);
return BaseResponse.success(null);
}
@GetMapping("/detail/{id}")
@Operation(summary = "根据id查询学生详情")
public BaseResponse<{Xxx}DTO, Object> getDetail(@PathVariable String id) {
return BaseResponse.success({xxx}Manager.queryDetailById(id));
}
@PostMapping("/delete/{id}")
@Operation(summary = "删除{业务名称}")
public BaseResponse<Object, Object> delete(@PathVariable String id) {
{xxx}Manager.deleteById(id);
return BaseResponse.success(null);
}
}关键规约
| 规约项 | 要求 |
|---|---|
| HTTP 方法限制 | 仅允许使用 @GetMapping 和 @PostMapping,禁止使用 @PutMapping、@DeleteMapping、@PatchMapping 等其他 HTTP 方法 |
| 包路径 | 使用 {basePackage} 占位符,由生成器根据实际项目替换 |
| 路由前缀 | 通过 RestPrefixConstant.{XXX}_REST_PREFIX 配置,必须以 /api 开头 |
| 返参格式 | 统一用 BaseResponse<T, Object> 包裹 |
| 参数校验 | 入参必须加 @Valid |
| 分层调用 | 仅调用 Manager 层,禁止直接调用 Service 或 Mapper |
| 入参/返参 | 入参使用 VO,返参使用 DTO |
| 文档注释 | 所有类必须添加 @author 和 @since |
