Files
ccdi/docs/reports/implementation/2026-03-18-lsfx-logid-primary-binding-implementation.md

3.1 KiB
Raw Blame History

LSFX Mock LogId 主体账号绑定实施记录

变更概述

  • lsfx-mock-server/services/file_service.pyFileRecord 增加 primary_enterprise_nameprimary_account_no,统一维护 logId -> 主体/账号 单一主绑定。
  • 上传文件、拉取本行信息两条链路都改为创建并保存完整 FileRecord,后续上传状态查询优先读取真实记录,未命中时才回退到 deterministic 生成。
  • lsfx-mock-server/services/statement_service.py 改为按 logIdFileService 读取主绑定,并将 leNameaccountMaskNo 统一注入分页流水结果。
  • lsfx-mock-server/routers/api.py 改为让 statement_servicefile_service 共享同一份 FileService 实例,确保上传状态接口与查流水接口使用同一组绑定数据。
  • 补齐 tests/test_file_service.pytests/test_statement_service.pytests/test_api.pytests/integration/test_full_workflow.py 回归测试,并在 tests/conftest.py 增加单例状态重置夹具,避免测试串扰。

联动结果

  • 上传文件:创建 FileRecord 时同时生成主绑定,并同步回填 accountsOfLoguploadLogList
  • 拉取本行信息:返回 logId 前即落库 FileRecord,后续 bs/uploadgetpendingsgetBSByLogId 都可复用同一主绑定。
  • 上传状态:优先读取真实 FileRecord;只有当 logId 没有已存记录时,才走 deterministic fallback。
  • 银行流水:优先从 FileService 读取 primary_enterprise_nameprimary_account_no,统一写入每条流水的 leNameaccountMaskNo

优先级说明

  • FileService.get_upload_status():真实 FileRecord 优先deterministic fallback 兜底。
  • StatementService 主绑定解析:真实 FileRecord 优先,服务内 fallback 仅在记录不存在时生效。
  • deterministic fallback 的时间字段、主体字段、账号字段都已改为基于 logId 的稳定生成,保证同一 logId 重复查询结果一致。

提交记录

  • 0120d09 收敛Mock文件记录主体账号绑定模型
  • 6fb7287 让拉取本行信息链路复用Mock主体账号绑定
  • 0a85c09 统一Mock上传状态主体账号绑定优先级
  • 5195617 让Mock流水查询复用logId主体账号绑定

验证记录

  • cd lsfx-mock-server && python3 -m pytest tests/test_file_service.py -v
  • cd lsfx-mock-server && python3 -m pytest tests/test_statement_service.py -v
  • cd lsfx-mock-server && python3 -m pytest tests/test_api.py -v
  • cd lsfx-mock-server && python3 -m pytest tests/integration/test_full_workflow.py -v
  • cd lsfx-mock-server && python3 verify_implementation.py

验证结果

  • tests/test_file_service.py3 个用例全部通过。
  • tests/test_statement_service.py1 个用例通过。
  • tests/test_api.py14 个用例全部通过。
  • tests/integration/test_full_workflow.py4 个用例全部通过。
  • verify_implementation.py:接口字段完整性与模板文件校验全部通过。

进程说明

  • 本次验证仅运行 pytest 与 verify_implementation.py,未启动 python main.pyuvicorn,无需额外停止服务进程。