java-dcsw.md 3.4 KB


name: crud-by-controller-dcsw

description: 基于 tofly-dcsw 现有 Controller 风格快速生成标准 CRUD 代码(Controller/Service/Mapper/Mapper.xml),并约束 SQL 仅放在 *Mapper.xml。用户提到生成 CRUD、参考现有控制器补全增删改查、统一 ResultRespone 风格或规范 MyBatis XML 时使用。

CRUD 生成 Skill(tofly-dcsw 场景)

适用场景

当用户要求“按 tofly-dcsw 现有模块风格新增或补全 CRUD”时使用。
默认对齐 dc-moudule/water-qualitydc-moudule/hnls-scada 的常见风格。

公共 Skill 引用

  • POM 工作流:language/java/pom-factory-skill.mdMaven 治理条文rules/java-pom-governance.mdc
  • Java CRUD 通用规范rules/java-crud-common.mdc
  • 当任务同时涉及 CRUD 与 POM 治理时:代码分层遵循本文件,Maven 规则遵循 pom-factory-skill + java-pom-governance
  • 当本文件与 java-crud-common 冲突时,本文件项目差异规则优先。

dcsw 专项约束

接口与返回

  • Controller:@RestController + @RequestMapping("/xxx") + @Api(tags = "...")
  • 返回体统一使用 ResultRespone
  • CRUD:GET /pagePage + @ModelAttribute)、GET /{id}POST /@RequestBody @Valid)、PUT /@RequestBody @Valid)、DELETE /{id}DELETE /deleteByIdsids 逗号分隔)。

Swagger 与日志

  • 方法级 @ApiOperation;主键与批量参数 @ApiImplicitParam(s)
  • 写操作(新增/修改/删除)使用 @ToFlyAppLog(title = "...")

分层与 SQL

  • Controller 只做参数接收、基础校验、结果封装;业务规则与事务在 Service;不直接访问 Mapper
  • SQL 仅 *Mapper.xmlMapper.java 仅签名,禁止注解 SQL;namespace 对齐全限定名。
  • rules/java-crud-common.mdc 一致的条款不再重复。

Service

  • ServiceImpl 常见基类:ServiceImpl<Mapper, Entity>
  • 跨表写、批量删除等需 @Transactional
  • 业务失败统一抛业务异常或 ResultRespone.failed(...),不透出 SQL/堆栈。
  • 名称唯一、删除前关联检查等校验在 Service 实现。

生成步骤

  1. 识别目标模块
  2. 确认是 water-qualityhnls-scada 或其他子模块。
  3. 就近选择同包 Controller 作为风格模板。

  4. 生成 Controller

  5. 保持 ResultRespone、路由、Swagger 一致;六类接口齐全;写操作加 @ToFlyAppLog

  6. 生成 Service 与 ServiceImpl

  7. 接口声明业务方法;实现含事务与业务约束。

  8. 生成 Mapper + Mapper.xml

  9. Mapper 声明分页与扩展查询;XML 中动态 SQL、resultMap 等。

  10. 自检

  11. rules/java-crud-common.mdc 自检。

  12. 检查注解 SQL、Controller 复杂业务、写接口 @ToFlyAppLog、XML namespace

输出格式

## CRUD 结果(dcsw)
- 模块:`...`
- 实体:`...`
- 新增文件:`...`
- 修改文件:`...`

## 接口清单
- `GET /xxx/page`
- `GET /xxx/{id}`
- `POST /xxx`
- `PUT /xxx`
- `DELETE /xxx/{id}`
- `DELETE /xxx/deleteByIds`

## 规范检查
- [x] 返回统一使用 `ResultRespone`
- [x] 写接口已加 `@ToFlyAppLog`
- [x] Controller 无复杂业务编排
- [x] SQL 全部位于 `*Mapper.xml`
- [x] Mapper 无注解 SQL

参考