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.

228 lines
7.8 KiB

2 days ago
# A4 响应字段缺口返回类型普查
依据 `.scratch/customer-e2e/defs_a4.py` 与两份 specimens JSON 静态计算;缺口定义为未取得 `response.data` 的端点。源码命中范围为 `crm-customer``crm-rule``src/main/java`
## 汇总
- A4 定义端点总数:57
- 已有 E2E `response.data`、生成器可展开字段表:28
- 当前缺口:29
| 返回形态 | 端点数 |
| --- | ---: |
| List<T> | 2 |
| PageResult<T> | 1 |
| 内联结构 | 4 |
| 单个 DTO | 5 |
| 原始标量 | 1 |
| 空响应 | 14 |
| 非标准响应 | 2 |
## 各类代表端点
- List<T>:`GET /api/customer/company-lookup`(`defs_a4.py:146`);`GET /api/customer/transfer/{id}/assignable`(`defs_a4.py:340`)
- PageResult<T>:`POST /api/customer/page`(`defs_a4.py:110`)
- 内联结构:`POST /api/customer/claim-batch`(`defs_a4.py:183`);`POST /api/customer/assign-batch`(`defs_a4.py:191`)
- 单个 DTO:`POST /api/customer`(`defs_a4.py:26`);`PUT /api/customer/{id}`(`defs_a4.py:67`)
- 原始标量:`POST /api/customer/contact`(`defs_a4.py:253`)
- 空响应:`POST /api/customer/claim`(`defs_a4.py:179`);`POST /api/customer/assign`(`defs_a4.py:187`)
- 非标准响应:`GET /api/customer/import/template`(`defs_a4.py:365`);`GET /api/customer/ping`(`defs_a4.py:370`)
## Java 类型名直查结果
- 可按 `resp` 中类型名唯一命中 `.java` 文件:7 条。
- 找不到同名 `.java` 文件:1 条。
- 同名文件歧义:0 条。
### 未命中类型
- `GET /api/customer/company-lookup``CompanyCandidate`;`resp`:List<CompanyCandidate>(V1 stub 恒 [])
## 逐端点清单
### 01. 新增客户
- 对账键:`POST /api/customer`(`defs_a4.py:26`)
- 返回描述:`CustomerSaveResultDTO 双形态:needConfirm=true + similarHits[](未落库,待确认);或直接返回新客户 id(string)`
- 分类:单个 DTO;候选类型:`CustomerSaveResultDTO`
- 源码命中:`crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerSaveResultDTO.java`
### 02. 编辑客户
- 对账键:`PUT /api/customer/{id}`(`defs_a4.py:67`)
- 返回描述:`CustomerSaveResultDTO(同新增;命中相似时 needConfirm=true)`
- 分类:单个 DTO;候选类型:`CustomerSaveResultDTO`
- 源码命中:`crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerSaveResultDTO.java`
### 03. 客户分页
- 对账键:`POST /api/customer/page`(`defs_a4.py:110`)
- 返回描述:`PageResult<CustomerDetailDTO>(content/total,ID 序列化为 string)`
- 分类:PageResult<T>;候选类型:`CustomerDetailDTO`
- 源码命中:`crm-customer/src/main/java/com/crm/customer/domain/dto/CustomerDetailDTO.java`
### 04. 工商信息查询
- 对账键:`GET /api/customer/company-lookup`(`defs_a4.py:146`)
- 返回描述:`List<CompanyCandidate>(V1 stub 恒 [])`
- 分类:List<T>;候选类型:`CompanyCandidate`
- 源码命中:无
### 05. 领取客户
- 对账键:`POST /api/customer/claim`(`defs_a4.py:179`)
- 返回描述:`null(Result<Void>,data=null 非失败)`
- 分类:空响应
### 06. 批量领取
- 对账键:`POST /api/customer/claim-batch`(`defs_a4.py:183`)
- 返回描述:`BatchResult{successCount,failures:[{id,reason}]}`
- 分类:内联结构;候选类型:`BatchResult`
- 源码命中:无
### 07. 分配客户
- 对账键:`POST /api/customer/assign`(`defs_a4.py:187`)
- 返回描述:`null`
- 分类:空响应
### 08. 批量分配
- 对账键:`POST /api/customer/assign-batch`(`defs_a4.py:191`)
- 返回描述:`BatchResult{successCount,failures}`
- 分类:内联结构;候选类型:`BatchResult`
- 源码命中:无
### 09. 抛公海
- 对账键:`POST /api/customer/release-pool`(`defs_a4.py:195`)
- 返回描述:`null`
- 分类:空响应
### 10. 批量抛公海
- 对账键:`POST /api/customer/release-pool-batch`(`defs_a4.py:199`)
- 返回描述:`BatchResult{successCount,failures}`
- 分类:内联结构;候选类型:`BatchResult`
- 源码命中:无
### 11. 归档客户
- 对账键:`POST /api/customer/archive`(`defs_a4.py:203`)
- 返回描述:`null`
- 分类:空响应
### 12. 批量归档
- 对账键:`POST /api/customer/archive-batch`(`defs_a4.py:207`)
- 返回描述:`BatchResult{successCount,failures}`
- 分类:内联结构;候选类型:`BatchResult`
- 源码命中:无
### 13. 恢复客户
- 对账键:`POST /api/customer/restore`(`defs_a4.py:211`)
- 返回描述:`null`
- 分类:空响应
### 14. 添加团队成员
- 对账键:`POST /api/customer/{id}/members`(`defs_a4.py:223`)
- 返回描述:`null`
- 分类:空响应
### 15. 移除团队成员
- 对账键:`DELETE /api/customer/{id}/members/{memberUserId}`(`defs_a4.py:227`)
- 返回描述:`null`
- 分类:空响应
### 16. 新增联系人
- 对账键:`POST /api/customer/contact`(`defs_a4.py:253`)
- 返回描述:`新联系人 id(string)`
- 分类:原始标量
### 17. 编辑联系人
- 对账键:`PUT /api/customer/contact/{id}`(`defs_a4.py:267`)
- 返回描述:`null`
- 分类:空响应
### 18. 删除联系人
- 对账键:`DELETE /api/customer/contact/{id}`(`defs_a4.py:277`)
- 返回描述:`null`
- 分类:空响应
### 19. 联系人详情
- 对账键:`GET /api/customer/contact/{id}`(`defs_a4.py:280`)
- 返回描述:`ContactDTO(含 customerName/customerNo 仅出参字段)`
- 分类:单个 DTO;候选类型:`ContactDTO`
- 源码命中:`crm-customer/src/main/java/com/crm/customer/domain/dto/ContactDTO.java`
### 20. 关注客户
- 对账键:`POST /api/customer/{id}/focus`(`defs_a4.py:298`)
- 返回描述:`null`
- 分类:空响应
### 21. 取消关注客户
- 对账键:`POST /api/customer/{id}/unfocus`(`defs_a4.py:301`)
- 返回描述:`null`
- 分类:空响应
### 22. 标记重点客户
- 对账键:`POST /api/customer/{id}/star`(`defs_a4.py:304`)
- 返回描述:`null`
- 分类:空响应
### 23. 取消重点标记
- 对账键:`POST /api/customer/{id}/unstar`(`defs_a4.py:307`)
- 返回描述:`null`
- 分类:空响应
### 24. 批量关注客户
- 对账键:`POST /api/customer/focus-batch`(`defs_a4.py:310`)
- 返回描述:`null`
- 分类:空响应
### 25. 发起交接
- 对账键:`POST /api/customer/transfer/initiate`(`defs_a4.py:319`)
- 返回描述:`TransferDetailDTO(交接单头:transferNo/status/totalCount/assignedCount…)`
- 分类:单个 DTO;候选类型:`TransferDetailDTO`
- 源码命中:`crm-customer/src/main/java/com/crm/customer/domain/dto/TransferDetailDTO.java`
### 26. 可分配销售列表
- 对账键:`GET /api/customer/transfer/{id}/assignable`(`defs_a4.py:340`)
- 返回描述:`List<AssignableUserDTO>(userId/userName/deptName;当前因 D-07 不可达)`
- 分类:List<T>;候选类型:`AssignableUserDTO`
- 源码命中:`crm-customer/src/main/java/com/crm/customer/domain/dto/AssignableUserDTO.java`
### 27. 上传导入文件并预校验
- 对账键:`POST /api/customer/import/upload`(`defs_a4.py:345`)
- 返回描述:`ImportPreviewDTO(taskId + totalCount/insertCount/updateCount/failCount/suspectCount + 行级明细)`
- 分类:单个 DTO;候选类型:`ImportPreviewDTO`
- 源码命中:`crm-customer/src/main/java/com/crm/customer/domain/dto/ImportPreviewDTO.java`
### 28. 下载导入模板
- 对账键:`GET /api/customer/import/template`(`defs_a4.py:365`)
- 返回描述:`非信封:二进制文件流(Content-Disposition: attachment; filename*=UTF-8''…xlsx);失败时标准 JSON 信封`
- 分类:非标准响应
### 29. 健康探针
- 对账键:`GET /api/customer/ping`(`defs_a4.py:370`)
- 返回描述:`文字说明:标准 JSON 信封,data 为固定探针文案`
- 分类:非标准响应