private void ProcessRtnOrder(CtpOrder data) { var localId = $"{data.FrontID}:{data.SessionID}:{data.OrderRef}"; if (!_orders.TryGetByLocalId(localId, out var order)) { return; } if (!string.IsNullOrEmpty(data.OrderSysID) && string.IsNullOrEmpty(order.OrderID)) { order.OrderID = $"{data.ExchangeID}:{data.InstrumentID}:{data.OrderSysID}"; _orders.SetOrderSysId(order.OrderID, localId); } ReportOrder(order, CtpConvert.GetExecType(data), CtpConvert.GetOrderStatus(data), 0, 0, data.StatusMsg); if (_cancelPendings.Contains(localId)) { _cancelPendings.Remove(localId); ProcessCancelOrder(localId); } }
private void ProcessRtnOrder(CtpOrder data) { var id = CtpConvert.GetId(data); if (!_orders.TryGetById(id, out var order)) { return; } if (!string.IsNullOrEmpty(data.OrderSysID) && string.IsNullOrEmpty(order.OrderID)) { order.OrderID = data.OrderSysID; order.ExchangeID = data.ExchangeID; _orders.SetMap(order); ProcessTradePending(); } ReportOrder(order, CtpConvert.GetExecType(data), CtpConvert.GetOrderStatus(data), 0, 0, data.StatusMsg); if (_cancelPendings.Contains(id)) { _cancelPendings.Remove(id); ProcessCancelOrder(id); } }