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

2.4 KiB
Raw Blame History

征信解析发起接口成功判断调整实施记录

背景

联调日志显示,征信解析发起接口 /api/service/interface/invokeService/xfeature 已返回外层 success=truecode=10000,并在 data.mappingOutputFields.message 中返回“文件写入成功,流水号为...”。但系统仍按结果接口的 mappingOutputFields.status_code=0 判断发起接口成功,导致“文件写入成功”被误判为失败,后续结果接口未继续查询。

修改内容

  1. CreditParseClient

    • 发起接口改为校验外层 success=truecode=10000,并校验发起层 data.status=1data.reasonCode=200
    • 结果接口改为与发起接口一致,校验外层 success=truecode=10000,并校验 data.status=1data.reasonCode=200
    • mappingOutputFields.status_code 不再作为 /xfeatureResult 是否成功的判断条件;结果接口返回成功后,仅通过 payload 是否为空判断是否继续轮询。
    • 接口异常时优先返回 reasonMessage,其次返回 mappingOutputFields.message
  2. 响应对象

    • CreditParseInvokeData 新增 statusreasonCodereasonMessage 字段。
    • data 层开启未知字段忽略,适配发起接口返回的 traceIdprocCodebizId 等额外字段。
  3. Mock 与文档

    • lsfx-mock-server 发起接口和结果接口成功返回均补充 status=1reasonCode=200
    • Mock README 示例同步更新。
  4. 测试

    • Java 单测改为使用发起接口真实成功结构。
    • 新增发起接口 status/reasonCode 失败时不继续查询结果接口的断言。
    • Java 单测增加 /xfeatureResult 返回 status_code 非 0 但 status/reasonCode 成功时仍继续落库的覆盖。
    • Mock 测试同步校验发起接口和结果接口的 data.status=1data.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:通过。