40 lines
2.4 KiB
Markdown
40 lines
2.4 KiB
Markdown
# 征信解析发起接口成功判断调整实施记录
|
||
|
||
## 背景
|
||
|
||
联调日志显示,征信解析发起接口 `/api/service/interface/invokeService/xfeature` 已返回外层 `success=true`、`code=10000`,并在 `data.mappingOutputFields.message` 中返回“文件写入成功,流水号为...”。但系统仍按结果接口的 `mappingOutputFields.status_code=0` 判断发起接口成功,导致“文件写入成功”被误判为失败,后续结果接口未继续查询。
|
||
|
||
## 修改内容
|
||
|
||
1. `CreditParseClient`
|
||
- 发起接口改为校验外层 `success=true`、`code=10000`,并校验发起层 `data.status=1`、`data.reasonCode=200`。
|
||
- 结果接口改为与发起接口一致,校验外层 `success=true`、`code=10000`,并校验 `data.status=1`、`data.reasonCode=200`。
|
||
- `mappingOutputFields.status_code` 不再作为 `/xfeatureResult` 是否成功的判断条件;结果接口返回成功后,仅通过 `payload` 是否为空判断是否继续轮询。
|
||
- 接口异常时优先返回 `reasonMessage`,其次返回 `mappingOutputFields.message`。
|
||
|
||
2. 响应对象
|
||
- `CreditParseInvokeData` 新增 `status`、`reasonCode`、`reasonMessage` 字段。
|
||
- 对 `data` 层开启未知字段忽略,适配发起接口返回的 `traceId`、`procCode`、`bizId` 等额外字段。
|
||
|
||
3. Mock 与文档
|
||
- `lsfx-mock-server` 发起接口和结果接口成功返回均补充 `status=1`、`reasonCode=200`。
|
||
- Mock README 示例同步更新。
|
||
|
||
4. 测试
|
||
- Java 单测改为使用发起接口真实成功结构。
|
||
- 新增发起接口 `status/reasonCode` 失败时不继续查询结果接口的断言。
|
||
- Java 单测增加 `/xfeatureResult` 返回 `status_code` 非 0 但 `status/reasonCode` 成功时仍继续落库的覆盖。
|
||
- Mock 测试同步校验发起接口和结果接口的 `data.status=1`、`data.reasonCode=200`。
|
||
|
||
## 影响范围
|
||
|
||
- 仅影响征信解析双接口调用链的成功判断与本地 Mock 返回结构。
|
||
- 不涉及前端页面、数据库结构、征信 payload 字段映射和落库逻辑。
|
||
|
||
## 验证
|
||
|
||
- `mvn -pl ccdi-lsfx -Dtest=CreditParseControllerTest test`:通过,8 个用例成功。
|
||
- `mvn -pl ccdi-info-collection -am -Dtest=CcdiCreditInfoServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test`:通过,5 个用例成功。
|
||
- `cd lsfx-mock-server && python3 -m pytest tests/test_credit_api.py tests/test_startup.py -q`:通过,9 个用例成功。
|
||
- `git diff --check`:通过。
|