/// <summary> /// 港股改单 /// </summary> /// <param name="dataOrder">港股改单实体</param> /// <returns></returns> public HKModifyResultEntity ModifyHKStockOrder(HKModifyEntity dataOrder) { if (dataOrder == null) { return(null); } return(MatchCenterManager.Instance.ModifyHKOrder(dataOrder)); }
/// <summary> /// 撤消委托单 /// </summary> /// <param name="model">委托实体</param> public void ModifyOrder(HKModifyEntity model) { LogHelper.WriteDebug("[撮合单元运行撤销委托单方法]"); //委托实体为空 if (model == null) { return; } //bool cancel = false; string code = Guid.NewGuid().ToString(); var dataEntity = new HKModifyBackEntity(); //id dataEntity.Id = code; //委托单号码 dataEntity.OrderNo = model.OldOrderNo; //通道号码 dataEntity.ChannelNo = model.ChannelNo; decimal cancount = 0.00m; dataEntity.IsSuccess = false; dataEntity.Message = "改单失败,委托单不存在。"; OperationContext context = null; //通道号码不能为空 if (model.ChannelNo != null) { if (MatchCenterManager.Instance.OperationContexts.ContainsKey((model.ChannelNo))) { context = MatchCenterManager.Instance.OperationContexts[model.ChannelNo]; } } //上下文不能为空 if (context == null) { return; } try { var callback = context.GetCallbackChannel <IDoOrderCallback>(); if (callback != null) { callback.ModifyHKStockOrderRpt(dataEntity); } LogHelper.WriteDebug(" 改单单失败[" + "委托id=" + code + "委托代码=" + model.StockCode + ",撤单时间=" + DateTime.Now + ",委托单号码=" + model.OldOrderNo + ",撤单数量=" + cancount + "]"); } catch (Exception ex) { LogHelper.WriteError("CH-100:撤单wcf服务通道异常", ex); //TradePushBackImpl.Instanse.SaveCanceBack(dataEntity); } }
/// <summary> /// 港股改单 /// </summary> /// <param name="model"></param> /// <returns></returns> public HKModifyResultEntity ModifyHKOrder(HKModifyEntity model) { var result = new HKModifyResultEntity(); string message; result.OrderNo = model.OldOrderNo; LogHelper.WriteDebug("撮合中心管理器港股下单方法:"); try { if (model == null || string.IsNullOrEmpty(model.StockCode)) { message = "CH-0018:委托港股改单不能为空或者港股代码不能为空;"; result.Message = message; result.IsSuccess = false; LogHelper.WriteDebug(message); return(result); } if (matchDevices != null) { if (matchDevices.ContainsKey(model.StockCode.Trim())) { return(matchDevices[model.StockCode.Trim()].ModifyHKOrder(model)); } message = "CH-0018:管理中心撮合单元没有分配或撮合中心没有分配此品种类型撮合;"; LogHelper.WriteDebug(message); } else { message = "CH-0018:港股改单撮合中心撮合机不存在;"; LogHelper.WriteDebug(message); } } catch (Exception ex) { message = "CH-0018:港股改单异常"; LogHelper.WriteError(message, ex); } result.IsSuccess = false; result.Message = message; return(result); }
/// <summary> /// 添加实体 /// </summary> /// <param name="modifyEntity">撤单实体</param> public void Add(HKModifyEntity modifyEntity) { bufferModify.InsertQueueItem(modifyEntity); }