Skip to content

现金流动性投影 + FX(DM2)

概述

  • 流动性:将 Liquia entity / bank id 映射为 DTMS id 后,调用 POST /cash-liquidity/projection
  • FX 暴露:读取 DTMS DM2 buckets 与 deals,生成推荐并可接受为 Mission;显式要求 DTMS_ENABLED=true

触发入口

动作HTTP
流动性投影POST /api/cash-liquidity/projection
FX bucketsGET /api/fx-exposure/buckets
FX 推荐GET /api/fx-exposure/recommendations?bucketName=
FX dealsGET /api/fx-exposure/buckets/:bucketName/deals?currency=
接受推荐POST /api/fx-exposure/missions body { candidateRef }

参与方

  • Client、api-gateway
  • CashLiquidityUseCase、FX use-cases、MissionsService
  • DtmsAuthServiceDtmsClient、Redis、DTMS、本地 DB(Mission)

业务流程图

加载图表…

时序图:Cash Liquidity

加载图表…

时序图:FX Buckets / Recommendations / Accept

加载图表…

DTMS API 对照

步骤LiquiaHTTPPathBearer
流动性getLiquidityProjectionPOST/cash-liquidity/projection
BucketsgetDm2BucketsGET/dm2-buckets
DealsgetDm2BucketDealsGET/dm2-buckets/{bucket}/deals?currency=
鉴权loginPOST/auth/users/_login

本地数据影响

  • Liquidity:只读映射,无写
  • FX Accept:写 Mission + steps(无 DTMS id 字段);推荐读取 mission external refs

异常与补偿

  • Liquidity:传入 id 但无一有 DTMS 链接 → 空结果;检查 shouldSkipSync(缺配置会直接抛)
  • FX:DTMS_ENABLED!=='true' → 空或 DTMS_DISABLED;list 失败 warn→[];stale → FX_EXPOSURE_STALE
  • 与 Sync 差异:FX 在 production 也尊重 DTMS_ENABLED

源码索引

  • apps/api/src/orchestration/liquidity/cash-liquidity.use-case.ts
  • apps/api/src/orchestration/fx-exposure/*.use-case.ts
  • CashLiquidity / FxExposure controllers

以 apps/api 代码为准 · 生成规范见 .cursor/skills/liquia-business-docs