/// <summary> /// 退单事件 /// </summary> /// <param name="content">退单内容</param> private void DeleteBetEvent(BetContentResult content) { //if (dfv.LoginToken == null) //{ // dfv.Initialize(new LoginModel() { Loginname = "kf001", Password = "******" }, false); // dfv.Login(); //} //var result = dfv.CancelOrder<SingleOrderDelete>(content.DeleteOrderID); //if (result != null) //{ // DeleteBetContentResult deleteBetResult = new DeleteBetContentResult(); // deleteBetResult.BetMoney = content.BetMoney; // deleteBetResult.BetPlatformEnum = BetPlatformEnum.DFV168; // deleteBetResult.BetSessionID = PublicData.SessionId; // deleteBetResult.BetTime = DateTime.Now.ToLongTimeSpan(); // deleteBetResult.BuyerSessionID = content.BuyerSessionID; // deleteBetResult.ClientSessionID = content.ClientSessionID; // deleteBetResult.Id = content.Id; // deleteBetResult.Money = content.Money; // deleteBetResult.Number = content.Number; // deleteBetResult.ResultStatus = ResultStatus.Deleted; // deleteBetResult.Odds = content.Odds; // MQActionVoidResult deleteResult = PublicData.RequestSocket.RequestSendReceive<MQActionVoidResult>(IdKeyData.Create(PublicData.SessionId, "Bet/DeleteBetResult", deleteBetResult)); // if (deleteResult != null && deleteResult.IsOK) // { // //记录成功 // } // else // { // //记录失败 // } //} }
// DealerReceive数据处理 private void HandleKeyData_DealerReceive(string cmdText, string actionJsonResult) { //if (PublicData.ServerParameter == null || PublicData.ServerParameter.IsEmpty()) //{ // MessageBoxEx.Alert($"服务器参数获取失败,无法处理{cmdText}方法"); // return; //} if (cmdText == "PushAddBet") { BetContent content = JsonUtil.Deserialize <BetContent>(actionJsonResult); if (content != null) { PushBetEvent?.Invoke(content); } } else if (cmdText == "PushDeleteBet") { BetContentResult content = JsonUtil.Deserialize <BetContentResult>(actionJsonResult); if (content != null) { DeleteBetEvent?.Invoke(content); } } else { LogUtil.Error($"未处理的DealerReceive消息:cmd:{cmdText}; json:{actionJsonResult}"); } }
/// <summary> /// 转发退码命令到出货客户端 /// </summary> /// <param name="sessionId">下注端ID</param> /// <param name="betContent">下注结果信息</param> /// <returns></returns> public static MQActionVoidResult DeleteBet(string sessionId, BetContentResult betContent) { var session = SessionPool.GetClientsGroup(ClientTypeEnum.Bet); if (session != null) { foreach (var item in session) { if (item.Value.platform.Value == betContent.BetPlatformEnum) { MQRouterSendQueue.PushDeleteBet(item.Key, betContent); } } return(new MQActionVoidResult() { IsOK = true }); } else { return(new MQActionVoidResult() { IsOK = false, ErrorMsg = "未找到下注客户端" }); } }
// DealerReceive数据处理 private void HandleKeyData_DealerReceive(string cmdText, string actionJsonResult) { //if (PublicData.ServerParameter == null || PublicData.ServerParameter.IsEmpty()) //{ // MessageBoxEx.Alert($"服务器参数获取失败,无法处理{cmdText}方法"); // return; //} if (cmdText == "PushCollectCompleted") //扫水结果 { //解析扫水结果 CollectResult collectResult = JsonUtil.Deserialize <CollectResult>(actionJsonResult); CollectResultEvent?.Invoke(collectResult); } else if (cmdText == "PushAddBetCompleted") //下注结果 { //解析下注结果 BetContentResult betContentResult = JsonUtil.Deserialize <BetContentResult>(actionJsonResult); BetContentEvent?.Invoke(betContentResult); } else if (cmdText == "PushDeleteBetResult") //退码结果 { //解析下注结果 DeleteBetContentResult betContentResult = JsonUtil.Deserialize <DeleteBetContentResult>(actionJsonResult); DeletedBetContentEvent?.Invoke(betContentResult); } else { LogUtil.Error($"未处理的DealerReceive消息:cmd:{cmdText}; json:{actionJsonResult}"); } }
/// <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> /// <param name="sessionId">下注端ID</param> /// <param name="betContent">下注结果信息</param> /// <returns></returns> public static MQActionVoidResult BetCompleted(string sessionId, BetContentResult betContent) { var session = SessionPool.GetClientsGroup(ClientTypeEnum.Strategy); if (session != null) { foreach (var item in session) { MQRouterSendQueue.PushAddBetCompleted(item.Key, betContent); } return(new MQActionVoidResult() { IsOK = true }); } else { return(new MQActionVoidResult() { IsOK = false, ErrorMsg = "未找到下注客户端" }); } }
public DeleteBetContentResult DeleteBetOrder(BetContentResult content) { throw new NotImplementedException(); }