3.1 KiB
3.1 KiB
LSFX Mock LogId 主体账号绑定实施记录
变更概述
- 在
lsfx-mock-server/services/file_service.py为FileRecord增加primary_enterprise_name、primary_account_no,统一维护logId -> 主体/账号单一主绑定。 - 上传文件、拉取本行信息两条链路都改为创建并保存完整
FileRecord,后续上传状态查询优先读取真实记录,未命中时才回退到 deterministic 生成。 lsfx-mock-server/services/statement_service.py改为按logId从FileService读取主绑定,并将leName、accountMaskNo统一注入分页流水结果。lsfx-mock-server/routers/api.py改为让statement_service与file_service共享同一份FileService实例,确保上传状态接口与查流水接口使用同一组绑定数据。- 补齐
tests/test_file_service.py、tests/test_statement_service.py、tests/test_api.py、tests/integration/test_full_workflow.py回归测试,并在tests/conftest.py增加单例状态重置夹具,避免测试串扰。
联动结果
- 上传文件:创建
FileRecord时同时生成主绑定,并同步回填accountsOfLog、uploadLogList。 - 拉取本行信息:返回
logId前即落库FileRecord,后续bs/upload、getpendings、getBSByLogId都可复用同一主绑定。 - 上传状态:优先读取真实
FileRecord;只有当logId没有已存记录时,才走 deterministic fallback。 - 银行流水:优先从
FileService读取primary_enterprise_name、primary_account_no,统一写入每条流水的leName、accountMaskNo。
优先级说明
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 -vcd lsfx-mock-server && python3 -m pytest tests/test_statement_service.py -vcd lsfx-mock-server && python3 -m pytest tests/test_api.py -vcd lsfx-mock-server && python3 -m pytest tests/integration/test_full_workflow.py -vcd lsfx-mock-server && python3 verify_implementation.py
验证结果
tests/test_file_service.py:3 个用例全部通过。tests/test_statement_service.py:1 个用例通过。tests/test_api.py:14 个用例全部通过。tests/integration/test_full_workflow.py:4 个用例全部通过。verify_implementation.py:接口字段完整性与模板文件校验全部通过。
进程说明
- 本次验证仅运行 pytest 与
verify_implementation.py,未启动python main.py或uvicorn,无需额外停止服务进程。