/// <summary> /// 事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> //private void ScheduleMessageBuffer_QueueItemProcessEvent(object sender, // QueueItemHandleEventArg<OrderCacheMessageAccpetItem> e) //{ // //开市处理 // if (e.Item.Args.TimeType == Entity.Contants.Types.TradingTimeType.MacthBeginWork // //||e.Item.Args.TimeType == Types.TradingTimeType.Open // ) // { // string code = e.Item.Commodity.CommodityCode; // //现货 // if (e.Item.BreedClassType == Types.BreedClassTypeEnum.Stock) // { // if (this._XHOrderContainer.ContainsKey(code)) // { // if (IsTimeDone(code)) // { // var xHList = this._XHOrderContainer[code]; // foreach (var value in xHList.Values) // { // SendXHValue(value); // } // } // } // //商品期货 // } // else if (e.Item.BreedClassType == Types.BreedClassTypeEnum.CommodityFuture) // { // if (this._QHOrderContainer.ContainsKey(code)) // { // if (IsTimeDone(code)) // { // var xHList = this._QHOrderContainer[code]; // foreach (var value in xHList.Values) // { // SendSPQHValue(value); // } // } // } // } //股指期货 // else if (e.Item.BreedClassType == Types.BreedClassTypeEnum.StockIndexFuture) // { // if (this._GZQHOrderContainer.ContainsKey(code)) // { // if (IsTimeDone(code)) // { // var xHList = this._GZQHOrderContainer[code]; // foreach (var value in xHList.Values) // { // SendGZQHValue(value); // } // } // } // } // } // //收市处理,清除委托缓存 // if (e.Item.Args.TimeType == Entity.Contants.Types.TradingTimeType.MatchEndWork) // { // //LogHelper.WriteDebug("OrderCache:收市处理,清除委托缓存"); // _XHOrderContainer.Clear(); // _QHOrderContainer.Clear(); // _GZQHOrderContainer.Clear(); // } //} #region Cache Order /// <summary> /// 缓存现货 /// </summary> /// <param name="orderRequest"></param> public bool CacheStockOrder(XhTodayEntrustTableEx orderRequest) { bool result = false; if (orderRequest != null && orderRequest.OriginalEntity != null) { if (orderRequest.IsCacheOrder) { return(true); } try { orderRequest.IsCacheOrder = true; string strCode = orderRequest.OriginalEntity.SpotCode; string strOrderId = orderRequest.OriginalEntity.EntrustNumber; if (_XHOrderContainer.ContainsKey(strCode)) { var levelOneItem = _XHOrderContainer[strCode]; if (levelOneItem == null) { levelOneItem = new Dictionary <string, XhTodayEntrustTableEx>(); } if (levelOneItem.ContainsKey(strOrderId)) { LogHelper.WriteDebug("OrderCache.CacheStockOrder:已经缓存委托单" + strOrderId); } else { levelOneItem.Add(strOrderId, orderRequest); } } else { var levelOneItem = new Dictionary <string, XhTodayEntrustTableEx>(); levelOneItem.Add(strOrderId, orderRequest); _XHOrderContainer.Add(strCode, levelOneItem); } result = true; } catch (Exception ex) { string strMessage = "GT-2114:[现货报盘]缓存未开市委托异常。"; orderRequest.OriginalEntity.OrderMessage = strMessage; OrderOfferDataLogic.UpdateStockOrderMessage(orderRequest.OriginalEntity); LogHelper.WriteError(strMessage, ex); result = false; } } return(result); }
private void LoadXHOrderFromDB() { string format = "OrderStatusId = '{0}'"; string where = string.Format(format, (int)Entity.Contants.Types.OrderStateType.DOSUnRequired); XH_TodayEntrustTableDal dal = new XH_TodayEntrustTableDal(); List <XH_TodayEntrustTableInfo> list = null; try { //list = DataRepository.XhTodayEntrustTableProvider.Find(where); list = dal.GetListArray(where); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); } if (Utils.IsNullOrEmpty(list)) { return; } DateTime now = DateTime.Now; foreach (XH_TodayEntrustTableInfo table in list) { //DateTime entrustTime = table.EntrustTime.Value; //if (entrustTime.Year == now.Year && entrustTime.Month == now.Month && entrustTime.Day == now.Day) //{ // CacheStockOrder(new XhTodayEntrustTableEx(table)); //} //不再判断是否是当天 var order = new XhTodayEntrustTableEx(table); CacheStockOrder(order); } }
private void SendXHValue(XhTodayEntrustTableEx value) { if (value.HasSendCacheOrder) { return; } //if(!IsTimeDone(value.OriginalEntity.SpotCode)) // return; try { value.HasSendCacheOrder = true; this.XHOfferWakeupEvent(this, new WakeupEventArgs <XhTodayEntrustTableEx>(value)); } catch (Exception ex) { string strMessage = "GT-2111:[现货报盘]缓存未开市委托唤醒异常"; value.OriginalEntity.OrderMessage = strMessage; OrderOfferDataLogic.UpdateStockOrderMessage(value.OriginalEntity); LogHelper.WriteError(ex.Message, ex); } }