/// <summary> /// 检查投注比赛是否可投注,并返回最早结束的比赛时间 /// </summary> public static DateTime CheckGeneralBettingMatch(string gameCode, string gameType, string playType, List <Sports_AnteCodeInfo> codeList, string issuseNumber, SchemeBettingCategory?bettingCategory = null) { var sportsManager = new Sports_Manager(); if (gameCode == "BJDC") { var matchIdArray = (from l in codeList select string.Format("{0}|{1}", issuseNumber, l.MatchId)).Distinct().ToArray(); var matchList = QueryBJDCMatch(matchIdArray); if (matchList.Count != matchIdArray.Length) { throw new LogicException("所选比赛中有停止销售的比赛。"); } BettingHelper.CheckPrivilegesType_BJDC(gameCode, gameType, playType, issuseNumber, codeList, matchList); return(matchList.Min(m => m.LocalStopTime)); } if (gameCode == "JCZQ") { var matchIdArray = (from l in codeList select l.MatchId).Distinct().ToArray(); var matchList = QueryJCZQMatch(matchIdArray); if (matchList.Count != matchIdArray.Length) { throw new LogicException("所选比赛中有停止销售的比赛。"); } BettingHelper.CheckPrivilegesType_JCZQ(gameCode, gameType, playType, codeList, matchList); if (bettingCategory.HasValue && bettingCategory.Value == SchemeBettingCategory.SingleBetting) { return(matchList.Min(m => m.DSStopBettingTime)); } return(matchList.Min(m => m.FSStopBettingTime)); } if (gameCode == "JCLQ") { var matchIdArray = (from l in codeList select l.MatchId).Distinct().ToArray(); var matchList = QueryJCLQMatch(matchIdArray); if (matchList.Count != matchIdArray.Length) { throw new LogicException("所选比赛中有停止销售的比赛。"); } BettingHelper.CheckPrivilegesType_JCLQ(gameCode, gameType, playType, codeList, matchList); if (bettingCategory.HasValue && bettingCategory.Value == SchemeBettingCategory.SingleBetting) { return(matchList.Min(m => m.DSStopBettingTime)); } return(matchList.Min(m => m.FSStopBettingTime)); } throw new LogicException(string.Format("错误的彩种编码:{0}", gameCode)); }
public DateTime CheckGeneralBettingMatch(Sports_Manager sportsManager, string gameCode, string gameType, string playType, List <Sports_AnteCodeInfo> codeList, string issuseNumber, SchemeBettingCategory?bettingCategory = null) { if (gameCode == "BJDC") { var matchIdArray = (from l in codeList select string.Format("{0}|{1}", issuseNumber, l.MatchId)).Distinct().ToArray(); var matchList = sportsManager.QueryBJDCSaleMatchCount(matchIdArray); if (gameType.ToUpper() == "SF") { var SFGGMatchList = sportsManager.QuerySFGGSaleMatchCount(matchIdArray); if (SFGGMatchList.Count != matchIdArray.Length) { throw new LogicException("所选比赛中有停止销售的比赛。"); } BettingHelper.CheckPrivilegesType_BJDC(gameCode, gameType, playType, issuseNumber, codeList, matchList); return(SFGGMatchList.Min(m => m.BetStopTime)); } else { if (matchList.Count != matchIdArray.Length) { throw new LogicException("所选比赛中有停止销售的比赛。"); } BettingHelper.CheckPrivilegesType_BJDC(gameCode, gameType, playType, issuseNumber, codeList, matchList); return(matchList.Min(m => m.LocalStopTime)); } //if (matchList.Count != matchIdArray.Length && gameType != "HH") // throw new ArgumentException("所选比赛中有停止销售的比赛。"); } if (gameCode == "JCZQ") { var matchIdArray = (from l in codeList select l.MatchId).Distinct().ToArray(); var matchList = sportsManager.QueryJCZQSaleMatchCount(matchIdArray); //if (matchList.Count != matchIdArray.Length && gameType != "HH") // throw new ArgumentException("所选比赛中有停止销售的比赛。"); if (matchList.Count != matchIdArray.Length) { throw new LogicException("所选比赛中有停止销售的比赛。"); } //var matchResultList = sportsManager.QueryJCZQMatchResult(matchIdArray); //if (matchResultList.Count > 0) // throw new ArgumentException(string.Format("所选比赛中包含结束的比赛:{0}", string.Join(",", matchResultList.Select(p => p.MatchId).ToArray()))); BettingHelper.CheckPrivilegesType_JCZQ(gameCode, gameType, playType, codeList, matchList); //if (playType == "1_1") if (bettingCategory != null && bettingCategory.Value == SchemeBettingCategory.SingleBetting) { return(matchList.Min(m => m.DSStopBettingTime)); } return(matchList.Min(m => m.FSStopBettingTime)); } if (gameCode == "JCLQ") { var matchIdArray = (from l in codeList select l.MatchId).Distinct().ToArray(); var matchList = sportsManager.QueryJCLQSaleMatchCount(matchIdArray); //if (matchList.Count != matchIdArray.Length && gameType != "HH") // throw new ArgumentException("所选比赛中有停止销售的比赛。"); if (matchList.Count != matchIdArray.Length) { throw new LogicException("所选比赛中有停止销售的比赛。"); } var matchResultList = sportsManager.QueryJCLQMatchResult(matchIdArray); if (matchResultList.Count > 0) { throw new LogicException(string.Format("所选比赛中包含结束的比赛:{0}", string.Join(",", matchResultList.Select(p => p.MatchId).ToArray()))); } BettingHelper.CheckPrivilegesType_JCLQ(gameCode, gameType, playType, codeList, matchList); //if (playType == "1_1") if (bettingCategory != null && bettingCategory.Value == SchemeBettingCategory.SingleBetting) { return(matchList.Min(m => m.DSStopBettingTime)); } return(matchList.Min(m => m.FSStopBettingTime)); } if (gameCode == "CTZQ") { var issuse = new LotteryGameManager().QueryGameIssuseByKey(gameCode, gameType, issuseNumber); if (issuse == null) { throw new LogicException(string.Format("{0},{1}奖期{2}不存在", gameCode, gameType, issuseNumber)); } if (issuse.LocalStopTime < DateTime.Now) { throw new LogicException(string.Format("{0},{1}奖期{2}结束时间为{3}", gameCode, gameType, issuseNumber, issuse.LocalStopTime.ToString("yyyy-MM-dd HH:mm"))); } return(issuse.LocalStopTime); } //其它数字彩 var currentIssuse = new LotteryGameManager().QueryGameIssuseByKey(gameCode, gameCode == "CTZQ" ? gameType : string.Empty, issuseNumber); if (currentIssuse == null) { throw new LogicException(string.Format("{0},{1}奖期{2}不存在", gameCode, gameType, issuseNumber)); } if (currentIssuse.LocalStopTime < DateTime.Now) { throw new LogicException(string.Format("{0},{1}奖期{2}结束时间为{3}", gameCode, gameType, issuseNumber, currentIssuse.LocalStopTime.ToString("yyyy-MM-dd HH:mm"))); } return(currentIssuse.LocalStopTime); }