Appearance
资金执行引擎业务模式与策略文档
一、核心定位
资金执行引擎 = 把账务意图变成真实资金动作的核心执行层 核心原则:合规、风控、幂等、可补偿、可审计
上游输入:
- 统一订单:
t_unified_order - 交易记录/账务流水:
t_trade_record/t_txn_journal - 路由/模板解析结果
下游输出:
- 钱包余额变更
- 银行/清算接口调用
- 对账、结算、异常补偿
二、核心输入维度(决策因子)
| 维度 | 示例 | 作用说明 |
|---|---|---|
| 交易场景scene | WALLET_TRANSFER, WITHDRAW, PAYMENT, CLEARING | 决定执行器类型及是否涉及外部资金 |
| 交易金额amount | 小额/大额/超阈值 | 决定执行模式(同步/异步/批量) |
| 风险等级risk_level | LOW/MID/HIGH | 决定是否人工审核或风控挂起 |
| 用户等级user_type | KYC1/KYC2/商户 | 决定限额和通道策略 |
| 资金类型fund_type | 电子货币/银行存管 | 决定执行通道及接口 |
| 时间属性time_type | T+0/T+1 | 决定是否实时或批量执行 |
输出映射 → ExecutionStrategy 包括执行模式、执行器类型、是否风控挂起、超时策略、重试策略等
三、模块拆分与对应表
| 模块 | 对应表 | 核心职责 | 流转说明 |
|---|---|---|---|
| 执行策略决策 | t_execution_strategy_rule + t_execution_strategy_condition | 根据交易上下文匹配策略,生成 ExecutionStrategy | 匹配 scene/amount/risk_level/user_type/fund_type 等条件,输出执行模式和执行器类型 |
| 执行入口治理 | t_fund_execute_entry | 控制幂等,记录执行状态 | INIT → READY → EXECUTING → SUCCESS/FAIL,防止重复执行 |
| 执行分发 / Dispatcher | 无专表 | 分发到 SYNC/ASYNC/BATCH 执行器 | 根据 ExecutionStrategy 决定分发路径 |
| SYNC执行器 | t_fund_execute_task(同步也可记录) | 钱包内部资金变动,事务原子更新 | 锁定账户 → 校验余额 → 生成账务流水 → 更新余额 → 提交事务 |
| ASYNC执行器 | t_fund_execute_task | 异步调用银行/三方接口 | 任务生成 → MQ 投递 → 外部系统调用 → 回写结果 |
| BATCH执行器 | t_fund_execute_task + t_fund_execute_batch | 批量清算/结算 | 扫描待处理数据 → 批量聚合 → 生成 batch_no → 批次执行 → 批次回执 |
| 异常补偿 | t_fund_execute_compensate | 异常或人工介入处理 | 包含任务失败、超时、重复执行等补偿记录 |
| 监控/对账/审计 | 日志/报表 | 执行成功率、批次差错、对账处理 | 对账失败触发补偿流程,记录审计日志 |
四、策略规则示例(文档化记录)
1️⃣ 钱包内部小额转账(同步执行)
| 规则编码 | RULE_SYNC_WALLET_SMALL |
|---|---|
| 名称 | 钱包小额同步转账 |
| 优先级 | 1 |
| 执行模式 | SYNC |
| 执行器类型 | WALLET |
| 风控挂起 | 否 |
| 重试策略 | 无 |
| 超时策略 | 5秒 |
| 条件 | scene=WALLET_TRANSFER AND amount<=100000 AND risk_level=LOW |
| 备注 | 钱包内部小额转账立即执行 |
2️⃣ 大额提现(异步 + 风控复核)
| 规则编码 | RULE_WITHDRAW_BIG |
|---|---|
| 名称 | 大额提现异步执行 |
| 优先级 | 5 |
| 执行模式 | ASYNC |
| 执行器类型 | BANK |
| 风控挂起 | 是 |
| 重试策略 | 最大重试3次,间隔10秒 |
| 超时策略 | 30秒 |
| 条件 | scene=WITHDRAW AND amount>500000 AND risk_level IN (MID,HIGH) |
| 备注 | 提现超过阈值需要异步和风控复核 |
3️⃣ 清算/结算批量执行(BATCH)
| 规则编码 | RULE_CLEARING_BATCH |
|---|---|
| 名称 | 清算结算批量执行 |
| 优先级 | 10 |
| 执行模式 | BATCH |
| 执行器类型 | CLEARING |
| 风控挂起 | 否 |
| 重试策略 | 无 |
| 超时策略 | 无 |
| 条件 | scene=CLEARING |
| 备注 | 定时批量清算/结算 |
五、流转状态与执行细节
| 状态机 | 描述 |
|---|---|
| INIT | 执行入口创建,未分发 |
| READY | 策略匹配完成,待执行 |
| EXECUTING | 执行中,可能是 SYNC、ASYNC、BATCH |
| SUCCESS | 执行成功,资金变动完成 |
| FAIL | 执行失败,需补偿 |
| COMPENSATING | 异常补偿或人工处理 |
| FINAL | 执行结束,状态固定 |
六、执行流程示例(小额转账 SYNC)
| 步骤 | 模块/表 | 操作说明 |
|---|---|---|
| 1 | t_unified_order | 创建订单 |
| 2 | t_trade_record / t_txn_journal | 生成交易记录 / 账务意图 |
| 3 | t_fund_execute_entry | 创建执行入口,生成幂等Key,状态 INIT → READY |
| 4 | 执行策略决策模块 | 匹配 RULE_SYNC_WALLET_SMALL,生成 ExecutionStrategy |
| 5 | Dispatcher | 分发到 SYNC执行器 |
| 6 | SYNC执行器 | 锁定账户 → 校验余额 → 生成账务流水 → 更新余额 → 提交事务 |
| 7 | t_fund_execute_entry | 状态更新 SUCCESS |
| 8 | 监控/对账/审计 | 对账成功,记录日志 |
七、执行流程示例(大额提现 ASYNC)
| 步骤 | 模块/表 | 操作说明 |
|---|---|---|
| 1 | t_unified_order | 创建提现订单 |
| 2 | t_trade_record / t_txn_journal | 生成交易记录 / 账务意图 |
| 3 | t_fund_execute_entry | 创建执行入口,幂等Key生成,状态 INIT → READY |
| 4 | 执行策略决策模块 | 匹配 RULE_WITHDRAW_BIG,生成 ExecutionStrategy(ASYNC + 风控挂起) |
| 5 | Dispatcher | 分发到 ASYNC执行器 |
| 6 | t_fund_execute_task | 创建异步执行任务,状态 PENDING |
| 7 | ASYNC执行器 | MQ 投递 → 外部银行接口调用 → 回写任务结果 |
| 8 | t_fund_execute_entry | 状态更新 SUCCESS/FAIL |
| 9 | t_fund_execute_compensate | 如果失败或异常,生成补偿记录,人工介入 |
| 10 | 监控/对账/审计 | 检查任务成功率、对账差错、批次状态 |
八、批量执行示例(BATCH)
| 步骤 | 模块/表 | 操作说明 |
|---|---|---|
| 1 | t_unified_order / t_trade_record | 批量订单生成 |
| 2 | t_fund_execute_entry | 执行入口创建,状态 READY |
| 3 | 执行策略决策模块 | 匹配 RULE_CLEARING_BATCH,生成 BATCH ExecutionStrategy |
| 4 | Dispatcher | 分发到 BATCH执行器 |
| 5 | t_fund_execute_batch | 生成批次记录 batch_no,总笔数和总金额 |
| 6 | BATCH执行器 | 扫描待处理任务,批量执行、回写结果 |
| 7 | t_fund_execute_task | 每笔任务记录状态和执行结果 |
| 8 | t_fund_execute_batch | 批次状态 RUNNING → DONE |
| 9 | t_fund_execute_compensate | 对异常批次生成补偿记录 |
| 10 | 监控/对账/审计 | 批次对账,异常冻结资金,日志审计 |
九、说明与设计亮点
- 策略驱动:规则表 + 条件表实现灵活可配置策略,无需改代码即可调整业务逻辑。
- 幂等控制:入口表 + task_no 唯一索引,防止重复执行。
- 模块化执行:SYNC/ASYNC/BATCH分离,支持不同场景,事务/异步/批量独立处理。
- 状态追踪:全链路落库,支持异常补偿和审计。
- 可扩展:新增执行器或批次类型,只需配置策略和新增任务即可。
- 风险控制:大额/高风险交易可风控挂起,人工复核,保证资金安全。
整合策略、任务、批次、补偿和状态流的完整可视化流程表格/ASCII图
资金执行引擎整合流程图(ASCII + 表格说明)
┌───────────────────────┐
│ 统一订单 t_unified_order │
│ 订单创建 │
└─────────┬─────────────┘
│
▼
┌─────────────────────────────┐
│ 交易记录/账务流水 t_trade_record │
│ 生成交易意图/流水 │
└─────────┬─────────────────┘
│
▼
┌─────────────────────────────┐
│ 执行入口 t_fund_execute_entry │
│ 幂等Key+状态INIT→READY │
└─────────┬─────────────────┘
│
▼
┌─────────────────────────────┐
│ 执行策略匹配模块 │
│ t_execution_strategy_rule + t_execution_strategy_condition │
│ 生成 ExecutionStrategy │
└─────────┬─────────────┬──────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌─────────────┐
│ SYNC Exec │ │ ASYNC Exec│ │ BATCH Exec │
│ 钱包内部 │ │ 银行/三方 │ │ 清算/结算 │
└─────┬─────┘ └─────┬─────┘ └─────┬──────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐
│ t_fund_execute_task │ │ t_fund_execute_task │
│ 任务记录(异步/批量) │ │ 任务记录(异步/批量) │
└───────┬─────────────────┘ └───────────────┬─────────┘
│ │
▼ ▼
┌─────────────────────────────┐
│ t_fund_execute_batch │
│ 批次信息 batch_no / 总笔数 │
│ 状态 RUNNING → DONE │
└─────────┬───────────────────┘
│
▼
┌─────────────────────────────┐
│ t_fund_execute_compensate │
│ 异常补偿 / 人工介入记录 │
└─────────┬───────────────────┘
│
▼
┌─────────────────────────────┐
│ 监控/对账/审计 │
│ - 成功率/超时/批次差错 │
│ - 差错冻结资金 │
└─────────────────────────────┘表格化流程说明
| 步骤 | 模块 / 表 | 核心操作 | 输出 / 状态 |
|---|---|---|---|
| 1 | t_unified_order | 创建订单 | order_no, INIT |
| 2 | t_trade_record / t_txn_journal | 生成交易意图/账务流水 | txn_id, amount, scene |
| 3 | t_fund_execute_entry | 创建执行入口,生成幂等Key | 状态 INIT → READY |
| 4 | 执行策略匹配模块 | 根据策略规则匹配 ExecutionStrategy | execution_mode, executor_type, need_hold |
| 5 | Dispatcher | 分发到对应执行器 | SYNC/ASYNC/BATCH 路径 |
| 6 | SYNC执行器 | 锁定账户 → 校验余额 → 更新余额 → 提交事务 | 状态 EXECUTING → SUCCESS/FAIL |
| 7 | ASYNC执行器 | 生成 t_fund_execute_task → MQ投递 → 调用外部系统 → 回写结果 | 状态 PENDING → SUCCESS/FAIL |
| 8 | BATCH执行器 | 扫描待处理数据 → 聚合批次 → 执行 → 回写任务 | t_fund_execute_batch 状态 RUNNING → DONE |
| 9 | 异常补偿模块 | t_fund_execute_compensate,处理失败/超时/重复任务 | 人工介入或自动补偿 |
| 10 | 监控/对账/审计 | 对账、异常冻结资金、日志审计 | 可追溯记录,执行成功率统计 |
执行策略规则示例(文档化)
| 规则编码 | 名称 | 执行模式 | 执行器 | 风控挂起 | 条件 | 备注 |
|---|---|---|---|---|---|---|
| RULE_SYNC_WALLET_SMALL | 钱包小额同步转账 | SYNC | WALLET | 否 | scene=WALLET_TRANSFER AND amount<=100000 AND risk_level=LOW | 小额内部钱包交易立即执行 |
| RULE_WITHDRAW_BIG | 大额提现异步执行 | ASYNC | BANK | 是 | scene=WITHDRAW AND amount>500000 AND risk_level IN (MID,HIGH) | 大额提现异步+风控复核 |
| RULE_CLEARING_BATCH | 清算结算批量执行 | BATCH | CLEARING | 否 | scene=CLEARING | 定时批量清算/结算 |
状态机与执行追踪
| 状态 | 描述 |
|---|---|
| INIT | 执行入口创建,未分发 |
| READY | 策略匹配完成,待执行 |
| EXECUTING | 执行中,可能是 SYNC/ASYNC/BATCH |
| SUCCESS | 执行成功,资金变动完成 |
| FAIL | 执行失败,需补偿 |
| COMPENSATING | 异常补偿或人工处理 |
| FINAL | 执行结束,状态固定 |
模块设计亮点
- 策略驱动:规则可配置,支持在线调整,无需改代码。
- 幂等控制:入口表 + task_no 唯一索引,防止重复执行。
- 模块化执行:SYNC/ASYNC/BATCH 独立,支持事务/异步/批量处理。
- 状态追踪:全链路落库,支持异常补偿和审计。
- 风险控制:大额/高风险交易挂起,人工复核,保障资金安全。
- 监控对账:执行成功率、批次差错、异常冻结资金,实现可审计闭环。