You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.5 KiB
34 lines
1.5 KiB
|
3 weeks ago
|
# crm-base 通用批量结果骨架 BatchResult<F>
|
||
|
|
|
||
|
|
Type: task
|
||
|
|
Status: resolved
|
||
|
|
Depends on: —
|
||
|
|
ADR: docs/adr/0023-lead-batch-operations-and-view-stats.md (D2)
|
||
|
|
|
||
|
|
## Question(实现目标)
|
||
|
|
|
||
|
|
在 crm-base 提供业务无关的批量结果泛型骨架,供各业务域批量接口复用。
|
||
|
|
|
||
|
|
## 交付物
|
||
|
|
|
||
|
|
- `crm-base/src/main/java/com/crm/base/domain/result/BatchResult.java`
|
||
|
|
- 泛型 `BatchResult<F>`,与 `Result` / `PageResult` 并列于 `domain/result`。
|
||
|
|
- 字段:`int total`、`int successCount`、`int failCount`、`List<F> failures`。
|
||
|
|
- 方法:`addSuccess()`(total++、successCount++)、`addFailure(F item)`(total++、failCount++、failures.add)。
|
||
|
|
- `failures` 初始化为空 `ArrayList`,避免 NPE。
|
||
|
|
- **不得出现任何业务语义**(不引用 lead/pool/任何域枚举)——crm-base 纯净性约束(AGENTS.md / CONTEXT-MAP)。
|
||
|
|
|
||
|
|
## 验收
|
||
|
|
|
||
|
|
- 编译通过:`mvn -q -pl crm-base -am compile`。
|
||
|
|
- 全 `*.java` 无 BOM(AGENTS.md 编码规范)。
|
||
|
|
- 单元测试:`addSuccess`/`addFailure` 计数正确,`failures` 收集正确(可放 crm-base test)。
|
||
|
|
|
||
|
|
## Comments
|
||
|
|
|
||
|
|
## Answer
|
||
|
|
|
||
|
|
已交付。`crm-base/src/main/java/com/crm/base/domain/result/BatchResult.java`:泛型 `BatchResult<F>`(`@Data`),字段 total/successCount/failCount/`List<F> failures`(初始空 `ArrayList`),方法 `addSuccess()`/`addFailure(F)`。无任何业务语义。
|
||
|
|
|
||
|
|
验收:无 BOM;`BatchResultTest` 4/4 绿(`mvn -pl crm-base test -Dtest=BatchResultTest` BUILD SUCCESS)。
|