/// <summary> /// 保存用户未投注订单 /// </summary> public string SaveOrderSportsBetting(Sports_BetingInfo info, string userId) { string schemeId = string.Empty; info.GameCode = info.GameCode.ToUpper(); info.GameType = info.GameType.ToUpper(); var gameCode = info.GameCode; schemeId = BettingHelper.GetSportsBettingSchemeId(gameCode); var sportsManager = new Sports_Manager(); //验证比赛是否还可以投注 var stopTime = CheckGeneralBettingMatch(sportsManager, gameCode, info.GameType, info.PlayType, info.AnteCodeList, info.IssuseNumber); // 检查订单金额是否匹配 var betCount = CheckBettingOrderMoney(info.AnteCodeList, gameCode, info.GameType, info.PlayType, info.Amount, info.TotalMoney, stopTime, false, userId); var userManager = new UserBalanceManager(); var user = userManager.LoadUserRegister(userId); //开启事务 using (DB) { //biz.BeginTran(); DB.Begin(); try { AddRunningOrderAndOrderDetail(schemeId, info.BettingCategory, info.GameCode, info.GameType, info.PlayType, true, info.IssuseNumber, info.Amount, betCount, info.TotalMatchCount, info.TotalMoney, stopTime, info.SchemeSource, info.Security, SchemeType.SaveScheme, false, true, user.UserId, user.AgentId, info.CurrentBetTime, info.ActivityType, info.Attach, false, 0M, ProgressStatus.Waitting, TicketStatus.Waitting); foreach (var item in info.AnteCodeList) { //sportsManager.AddSports_AnteCode(new C_Sports_AnteCode //{ // SchemeId = schemeId, // AnteCode = item.AnteCode, // BonusStatus = (int)BonusStatus.Waitting, // CreateTime = DateTime.Now, // GameCode = gameCode, // GameType = string.IsNullOrEmpty(item.GameType) ? info.GameType.ToUpper() : item.GameType.ToUpper(), // IsDan = item.IsDan, // IssuseNumber = info.IssuseNumber, // MatchId = item.MatchId, // PlayType = info.PlayType, // Odds = string.Empty, //}); var c_entity = new C_Sports_AnteCode { SchemeId = schemeId, AnteCode = item.AnteCode, BonusStatus = (int)BonusStatus.Waitting, CreateTime = DateTime.Now, GameCode = gameCode, GameType = string.IsNullOrEmpty(item.GameType) ? info.GameType.ToUpper() : item.GameType.ToUpper(), IsDan = item.IsDan, IssuseNumber = info.IssuseNumber, MatchId = item.MatchId, PlayType = info.PlayType, Odds = string.Empty, }; DB.GetDal <C_Sports_AnteCode>().Add(c_entity); } //C_UserSaveOrder var C_UserSaveOrderEntity = new C_UserSaveOrder { SchemeId = schemeId, UserId = userId, GameCode = info.GameCode, GameType = info.GameType, PlayType = info.PlayType, SchemeType = (int)SchemeType.SaveScheme, SchemeSource = (int)info.SchemeSource, SchemeBettingCategory = (int)info.BettingCategory, ProgressStatus = (int)ProgressStatus.Waitting, IssuseNumber = info.IssuseNumber, Amount = info.Amount, BetCount = betCount, TotalMoney = info.TotalMoney, StopTime = stopTime, CreateTime = DateTime.Now, StrStopTime = stopTime.AddMinutes(-5).ToString("yyyyMMddHHmm"), }; //用户的订单保存 //sportsManager.AddUserSaveOrder(new C_UserSaveOrder //{ // SchemeId = schemeId, // UserId = userId, // GameCode = info.GameCode, // GameType = info.GameType, // PlayType = info.PlayType, // SchemeType = SchemeType.SaveScheme, // SchemeSource = info.SchemeSource, // SchemeBettingCategory = info.BettingCategory, // ProgressStatus = ProgressStatus.Waitting, // IssuseNumber = info.IssuseNumber, // Amount = info.Amount, // BetCount = betCount, // TotalMoney = info.TotalMoney, // StopTime = stopTime, // CreateTime = DateTime.Now, // StrStopTime = stopTime.AddMinutes(-5).ToString("yyyyMMddHHmm"), //}); DB.Commit(); } catch (Exception EX) { DB.Rollback(); throw EX; } } return(schemeId); }