safety-eval-service/.cursor/rules/safety-codegen.mdc

52 lines
2.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
description: 按 safety-eval-service 既定分层与枚举约定生成/修改代码(触发词:按照 safety 代码格式生成)
alwaysApply: true
---
# 按照 safety 代码格式生成
当用户说「按照 safety 代码格式生成」或根据 SQL/原型生成相关代码时,按本仓库既定格式生成,**只改任务相关文件,不动不相关代码**。
## 触发词
- 「按照 safety 代码格式生成」
## 分层与参考
对齐 `AccountController` / 机构端现有全链路Controller → Api → Executor → DomainService → Gateway → Mapper不相干功能不要生成。
参考入口:`safety-eval-adapter/.../web/AccountController.java`
机构端示例:`.../web/institution/EvalCustomerController.java`、`EvalProjectController.java`
新建清单(以表名为 Xxx
- adapter/web/XxxController.java或 institution 包下)
- client/api/XxxApi.java
- client/dto/XxxAddCmd、XxxModifyCmd、XxxPageQuery按实际需要
- client/co/XxxCO
- app/executor/XxxExecutor.java实现 Api
- app/convertor/XxxCmdConvertor.javaMapStruct勿放 change/convertor除非是备案变更
- domain/entity/XxxEntity、domain/query/XxxQuery、domain/gateway/XxxGateway、domain/service/XxxDomainService
- infrastructure/dataobject/XxxDO、mapper/XxxMapper、gatewayimpl/XxxGatewayImpl
- infrastructure/convertor/XxxDoConvertor.javaMapStruct Entity↔DO
## 转换
- 禁止手写 set() 填充 Cmd/CO/Entity/DO统一 MapStruct`componentModel = "spring"`
- 字段名一致自动映射
## orgId 与填充
- 表有 org_id 时:全链路所有实体都加 orgIdDO/Entity/AddCmd/ModifyCmd/PageQuery/DomainQuery/CO 按需要)
- 新增:`InsertFieldDefaults.apply(dataObject)`(有 orgId 时不要用 applyIgnoreOrgId
- 修改:`InsertFieldDefaults.applyForUpdate(dataObject)`
- 无 org 字段的表才用 `applyIgnoreOrgId`(如 Account
## 枚举与只存 code强约定
- 下拉/状态类字段:**库表与 DO/Entity/Cmd 只存 code**,不落 `*_name`
- 名称在 Executor/CmdConvertor 用 `XxxEnum.ofCode(code).getValue()` 填到 CO可展示
- 能复用已有枚举则复用(如 `IndustryEnum`、`ChongqingDistrictEnum`);不能复用则在 `domain/constant` 新建写法对齐现有枚举code + value + `ofCode`
- 经纬度等坐标字段Java 侧统一 `String`
- 每个带枚举的业务模块提供:`GET .../enums`,返回 `EnumOptionCO(code,name)` 列表集合(如 `EvalCustomerEnumsCO` / `EvalProjectEnumsCO`
## 其它
- 最小 diff不主动写 README/测试/注释除非要求
- 解释用中文;标识符英文
- 代码完成后回答精简:只说改了什么、怎么验
- 禁止猜测生成;字段/范围不清先问用户