proxy-backend-impl-workflow
SKILL.md
Java CRUD 接口实现工作流
为实体实现完整 CRUD 接口时,按以下 10 步逐步执行。
前置准备
- 确认实体名、模块名、表名
- 确认字段列表(类型、必填、校验规则)
- 确认功能范围(增/删/改/查/导入/导出/批量删除)
- 确认是否需要多租户隔离(
tenant_id)
实施步骤
第 1 步:定义错误码
文件:xm-module-{模块}/.../enums/ErrorCodeConstants.java
ErrorCode {ENTITY}_NOT_EXISTS = new ErrorCode(1_0XX_0YY_000, "当前{实体中文名}不存在");
错误码编号在已有编号段之后顺延,消息用中文。
第 2 步:创建 DO
文件:dal/dataobject/{entity}/{Entity}DO.java
继承 BaseDO,使用 @TableName + @TableId + @Builder 等注解。每个字段写 Javadoc。
第 3 步:创建 Mapper
文件:dal/mysql/{entity}/{Entity}Mapper.java
继承 BaseMapperX<{Entity}DO>,用 default 方法 + LambdaQueryWrapperX 实现分页。
第 4 步:创建 VO
目录:controller/admin/{entity}/vo/
| 文件 | 用途 |
|---|---|
{Entity}PageReqVO |
分页请求,继承 PageParam |
{Entity}SaveReqVO |
创建/更新共用 |
{Entity}RespVO |
响应(含导出注解) |
所有字段加 @Schema,必填加 @NotNull/@NotBlank。
第 5 步:创建 Service 接口
文件:service/{entity}/{Entity}Service.java
每个方法必须写 Javadoc。返回 DO(Controller 层转 VO)。
标准方法:create{Entity} / update{Entity} / delete{Entity} / get{Entity} / get{Entity}Page
第 6 步:实现 Service
文件:service/{entity}/{Entity}ServiceImpl.java
@Resource注入 Mapper- 写入前做业务校验(存在性、唯一性)
- 校验方法以
validate开头 - 异常用
throw exception(ErrorCode) - VO -> DO 用
BeanUtils.toBean()
第 7 步:创建 Controller
参照 proxy-backend-api-design skill 的 Controller 模板。
@Tag + @Operation + @Parameter + @PreAuthorize + @Valid + CommonResult<T>
第 8 步:编写 SQL
- 建表 SQL(参照
proxy-backend-databaseskill 模板) - 菜单 SQL(目录菜单 + 按钮权限)
- 字典 SQL(如有枚举字段需要字典展示)
第 9 步:自检清单
- ErrorCodeConstants 已定义
- DO 继承 BaseDO,字段有注释
- Mapper 继承 BaseMapperX,分页已实现
- VO 分类正确,字段有
@Schema - Service 接口方法有 Javadoc
- ServiceImpl 校验完整
- Controller 文档注解完整,权限码正确
- 建表 SQL 包含必备字段和注释
- 菜单 SQL 权限码与 Controller 一致
- 无 TODO/FIXME,无硬编码,批量代替循环
第 10 步:输出前端对接清单
完成后输出接口列表、权限码、字典类型、生成文件清单供前端使用。
Weekly Installs
3
Repository
kevinqpeng/proxy-skillsFirst Seen
3 days ago
Security Audits
Installed on
amp3
cline3
opencode3
cursor3
kimi-cli3
codex3