委托系统

子工程与源码入口

coinex-contract-entrust 包含 contract-entrust-api、contract-entrust-provider。provider 中的重要位置:

  • com/exch/contract/entrust/provider/ContractEntrustServiceImpl.java
  • com/exch/contract/entrust/service/EntrustCreateService.java
  • com/exch/contract/entrust/service/EntrustCancelService.java
  • com/exch/contract/entrust/service/EntrustCreateTpslService.java
  • com/exch/contract/entrust/service/EntrustCancelTpslService.java

以上位于 contract-entrust-provider/src/main/java/。

普通单创建流程

ContractEntrustServiceImpl.saveEntrust
    → 非 TP_SL 分支
    → EntrustCreateService.saveEntrust
        → 参数及最新价 / 合约交易配置 / 用户状态
        → 涨跌幅 / 市价全平 / 精度 / 用户杠杆
        → 账户条件校验
        → ContractMatchEntrustDTO
        → saveOrder → matchEngineApi.addOrder

当前源码实际保留了 addOrder 调用,与现货旧委托桥接的注释情况不同。用户与机器人分支、开平仓、全仓逐仓等具体规则需要分别核验,不从流程归纳推导未读取的公式。

条件单流程

TP_SL 分支转到 EntrustCreateTpslService,构造后调用 matchEngineApi.addTpslOrder。条件单保存与后续触发、普通委托创建、成交是不同阶段;触发价格来源、调度及并发控制仍需沿完整实现继续确认。

撤单流程

普通单经 EntrustCancelService 查询缓存委托后调用 matchEngineApi.cancelOrder;条件单经 EntrustCancelTpslService 调用 cancelTpslOrder。批量撤单也有对应分流,不把撤单受理当成所有订单均已取消。

输入与输出

输入包括用户与商户、合约、开平方向、价格数量及杠杆仓位上下文;输出需按响应区分委托受理、错误、已取消或最终成交。历史委托、成交查询与仓位查询分别使用对应服务。

验证场景

杠杆配置缺失、用户受限、市价全平、精度或数量错误、保证金不足、条件单重复触发、部分成交撤单和批量部分失败。