Files
ccdi/docs/reports/implementation/2026-05-15-credit-parse-initiate-success-logic.md

40 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 征信解析发起接口成功判断调整实施记录
## 背景
联调日志显示,征信解析发起接口 `/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`:通过。