/// <summary> /// 收到扫水结果 /// </summary> /// <param name="content">扫水结果</param> private void CollectResultEvent(CollectResult content) { CollectInformation ci = new CollectInformation(); ci.CollectPlatform = content.Platform; ci.CollectSessionID = content.CollectSessionID; ci.MaxBetMoney = content.MaxBetMoney; ci.Number = content.Number; var count = BetProcessPool.SetBetProcessCollect(content.Id, ci); //如果扫水完成 if (count == 0) { var colls = BetProcessPool.GetCollectByID(content.Id); if (null != colls) { //分析扫水结果 //->暂缺 //开始下注 foreach (CollectInformation item in colls) { //设置分配好的下注平台 BetProcessPool.AddBetListItemInBetProcess(content.Id, item.CollectPlatform); Task.Run(() => { BetContent bet = new BetContent(); bet.Id = content.Id; bet.BetPlatformEnum = item.CollectPlatform; bet.BuyerSessionID = content.BuyerSessionID; bet.ClientSessionID = content.ClientSessionID; bet.InputType = 1; //号码类型 bet.Money = 1; // 分配的金额 bet.Number = item.Number; MQActionVoidResult result = PublicData.RequestSocket.RequestSendReceive <MQActionVoidResult>(IdKeyData.Create(PublicData.SessionId, "Bet/AddBet", bet)); if (null != result && result.IsOK) { //记录命令发送成功 } else { //记录命令发送失败 } }); } } } }
/// <summary> /// 处理下单结果 /// </summary> /// <param name="content"></param> private void BetContentEvent(BetContentResult content) { //收到下注结果 if (null != content) { BetInformation bet = new BetInformation(); bet.BetAccount = content.BetAccount; bet.BetMoney = content.BetMoney; bet.BetPlatform = content.BetPlatformEnum; bet.BetSessionID = content.BetSessionID; bet.DeleteOrderID = content.DeleteOrderID; bet.Number = content.Number; bet.Odds = content.Odds; bet.OperateTime = content.BetTime; bet.OrderID = content.OrderID; bet.Money = content.Money; //符合赔率 if (bet.Odds >= 9000) { bet.Status = ResultStatus.Success; } else { //退码 bet.Status = ResultStatus.Deleting; content.ResultStatus = ResultStatus.Deleting; MQActionVoidResult result = PublicData.RequestSocket.RequestSendReceive <MQActionVoidResult>(IdKeyData.Create(PublicData.SessionId, "Bet/DeleteBet", content)); if (null != result && result.IsOK) { //记录命令发送成功 } else { //记录命令发送失败 } } var count = BetProcessPool.SetBetProcessBetContent(content.Id, bet); if (count == 0) { //下单完成 可能存在已经退水了的 } } }
/// <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> private void BetCollect() { var betProc = BetProcessPool.GetBetProcess(); if (null != betProc) { Collect col = new Collect(); col.Id = betProc.Id; col.BuyerSessionID = PublicData.SessionId; col.ClientSessionID = betProc.ClientSessionID; col.Number = betProc.Number; MQActionVoidResult result = PublicData.RequestSocket.RequestSendReceive <MQActionVoidResult>(IdKeyData.Create(PublicData.SessionId, "Collect/PushCollect", col)); if (null != result && result.IsOK) { //记录命令发送成功 } else { //记录命令发送失败 } } }