bug
parent
9fea0bffa5
commit
7b00d472d8
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
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.java(MapStruct,勿放 change/convertor,除非是备案变更)
|
||||
- domain/entity/XxxEntity、domain/query/XxxQuery、domain/gateway/XxxGateway、domain/service/XxxDomainService
|
||||
- infrastructure/dataobject/XxxDO、mapper/XxxMapper、gatewayimpl/XxxGatewayImpl
|
||||
- infrastructure/convertor/XxxDoConvertor.java(MapStruct Entity↔DO)
|
||||
|
||||
## 转换
|
||||
- 禁止手写 set() 填充 Cmd/CO/Entity/DO;统一 MapStruct(`componentModel = "spring"`)
|
||||
- 字段名一致自动映射
|
||||
|
||||
## orgId 与填充
|
||||
- 表有 org_id 时:全链路所有实体都加 orgId(DO/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/测试/注释除非要求
|
||||
- 解释用中文;标识符英文
|
||||
- 代码完成后回答精简:只说改了什么、怎么验
|
||||
- 禁止猜测生成;字段/范围不清先问用户
|
||||
Loading…
Reference in New Issue