Skip to content

设计原则

mermaid
sequenceDiagram
    participant U as 用户
    participant O as 订单系统
    participant AE as 账户明细/执行引擎
    participant TJ as txn_journal
    participant BS as balance_snapshot
    participant CL as 清算系统
    participant ST as 结算系统
    participant BK as 银行/外部资金

    %% 下单阶段
    U->>O: 创建订单(100)
    O->>AE: 生成订单账户明细
    Note right of AE: 现金80\n红包15\n折扣5\n应付商户100

    %% 支付执行阶段
    AE->>TJ: USER_BAL → PLATFORM_CLEAR (80)
    TJ->>BS: 更新余额

    AE->>TJ: COUPON_RESERVE → PLATFORM_CLEAR (15)
    TJ->>BS: 更新余额

    AE->>TJ: MARKETING_EXPENSE → PLATFORM_CLEAR (5)
    TJ->>BS: 更新余额

    AE->>TJ: PLATFORM_CLEAR → MERCHANT_CLEAR (100)
    TJ->>BS: 更新余额

    Note over TJ,BS: 交易完成\n资金事实已固化

    %% 清算阶段
    CL->>TJ: 汇总交易txn
    CL->>CL: 计算手续费/分润
    Note right of CL: 商户100\n平台3\n代理2\n平台留存95

    CL->>TJ: MERCHANT_CLEAR → PLATFORM_PROFIT (3)
    TJ->>BS: 更新余额

    CL->>TJ: MERCHANT_CLEAR → AGENT_CLEAR (2)
    TJ->>BS: 更新余额

    CL->>TJ: MERCHANT_CLEAR → PLATFORM_PROFIT (95)
    TJ->>BS: 更新余额

    %% 结算阶段
    ST->>TJ: MERCHANT_CLEAR → MERCHANT_BANK (100)
    TJ->>BS: 更新余额
    ST->>BK: 银行打款给商户

    ST->>TJ: AGENT_CLEAR → AGENT_BANK (2)
    TJ->>BS: 更新余额
    ST->>BK: 银行打款给代理