/// <summary> /// 下注完成 /// </summary> /// <param name="sessionId">客户端ID</param> /// <param name="betCompleted">信息</param> /// <returns></returns> public static MQActionVoidResult BetCompleted(string sessionId, BetPoolItem betCompleted) { if (BetPool.BetSuccess(betCompleted.Id)) { return(new MQActionVoidResult() { IsOK = true }); } else { return(new MQActionVoidResult() { IsOK = false, ErrorMsg = "操作失败,请重试" }); } }
/// <summary> /// 添加下注信息到出货池 /// </summary> /// <param name="sessionId">客户端ID</param> /// <param name="bet">下注</param> /// <returns></returns> public static MQActionResult <string> AddBetInPool(string sessionId, BetPoolItem bet) { MQActionResult <string> result = new MQActionResult <string>(); if (BetPool.AddBetInPool(bet)) { result.Data = "添加成功"; result.ErrorMsg = ""; result.IsOK = true; return(result); } else { result.Data = "添加失败,请重试!"; result.ErrorMsg = "添加失败,请重试!"; result.IsOK = false; return(result); } }
/// <summary> /// 获取出货信息 /// </summary> private void ThreadBetInformation() { while (!PublicData.CancellationToken.IsCancellationRequested) { try { MQActionResult <BetPoolItem> result = PublicData.RequestSocket.RequestSendReceive <MQActionResult <BetPoolItem> >( IdKeyData.Create(PublicData.SessionId, "BetPool/GetBetInPool", PublicData.SessionId)); if (result.IsOK) { BetPoolItem betResult = result.Data; //添加到处理池 Task.Run(() => { BetProcess bet = new BetProcess(); bet.Id = betResult.Id; bet.Locked = false; bet.Money = betResult.Money; bet.Number = betResult.Number; bet.OperateID = betResult.OperateID; bet.Order = betResult.Order; bet.BuyerSessionID = PublicData.SessionId; bet.ClientSessionID = betResult.ClientSessionID; BetProcessPool.AddBetInPool(bet); }); } else { LogError(Environment.NewLine + "获取下注信息失败:" + result.ErrorMsg); } } catch (Exception ex) { LogError(Environment.NewLine + "获取下注信息异常:" + Environment.NewLine + ex.StackTrace); } Thread.Sleep(200); //200毫秒获取一次 } }
/// <summary> /// 将下注信息加入出货池 /// </summary> /// <param name="bet">下注信息</param> /// <returns></returns> public static bool AddBetInPool(BetPoolItem bet) { betPool.TryAdd(bet.Id, bet); BetPoolChanged?.Invoke(); return(true); }