void GetDailycupData(DailycupFullDataEntity dailycupData, Guid managerId, int beginRound, int endRound) { try { List <DailycupMatchEntity> matchlist = DailycupMatchMgr.GetMatchByRound(dailycupData.DailycupId, beginRound, endRound); var manager = ManagerCore.Instance.GetManager(managerId); var gambleCountMax = CacheFactory.VipdicCache.GetEffectValue(manager.VipLevel, EnumVipEffect.DailycupGambleCount); //BuffPlusHelper.DailycupGambleCount(ref gambleCountMax); dailycupData.GambleCountMax = gambleCountMax; dailycupData.MyGambleData = DailycupGambleMgr.GetMyGamebleData(dailycupData.DailycupId, managerId); if (dailycupData.MyGambleData != null) { foreach (var entity in dailycupData.MyGambleData) { entity.TimeTick = ShareUtil.GetTimeTick(entity.RowTime); } } foreach (var entity in matchlist) { entity.RoundType = CalRoundType(entity.Round, beginRound); } dailycupData.Matchs = matchlist; } catch (Exception ex) { SystemlogMgr.Error("doGetDailycupData", ex); } }
/// <summary> /// 针对某场比赛开奖 /// </summary> /// <param name="match">The match.</param> static void OpenGamble(DailycupMatchEntity match) { List <DailycupGambleEntity> list = DailycupGambleMgr.GetGambleByMatchId(match.Idx); foreach (var gamble in list) { if (gamble.Status == (int)EnumGambleStatus.Init) { OpenGamble(match, gamble); } } }
/// <summary> /// 竞猜每日杯赛. /// </summary> /// <param name="managerId">The manager.</param> /// <param name="gamblePoint">押注金额</param> /// <param name="gambleResult">竞猜结果:1,主队胜;2,客队胜</param> /// <param name="matchId">比赛Id</param> /// <returns>如果为空,则押注成功,否则就是不成功的信息</returns> public DailycupAttendGambleResponse AttendGamble(Guid managerId, int gamblePoint, int gambleResult, Guid matchId, bool hasTask) { DailycupMatchEntity match = DailycupMatchMgr.GetById(matchId); #region Check if (match == null) { return(ResponseHelper.InvalidParameter <DailycupAttendGambleResponse>()); } int dailycupId = match.DailyCupId; var dailycup = DailycupInfoMgr.GetById(dailycupId); if (dailycup == null) { return(ResponseHelper.InvalidParameter <DailycupAttendGambleResponse>()); } //押注已过期 if (IsGambleClosed(dailycup, match)) { return(ResponseHelper.Create <DailycupAttendGambleResponse>(MessageCode.DailycupGambleClosed)); } int maxCount = 0; var manager = ManagerCore.Instance.GetManager(managerId); //超过两个(包含2)球员被下注,就不能再下注了 var gambleCount = DailycupGambleMgr.GambleCheck(dailycupId, manager.Idx, matchId); if (gambleCount == -1) { return(ResponseHelper.InvalidParameter <DailycupAttendGambleResponse>()); } if (!CheckGambleCount(gambleCount, manager, out maxCount)) { var response = ResponseHelper.Create <DailycupAttendGambleResponse>(MessageCode.DailycupGamebleCountLimit); response.Data = new DailycupAttendGambleEntity(); response.Data.MaxGambleCount = maxCount; return(response); } if (!CheckGamblePoint(gamblePoint, manager, out maxCount)) { var response = ResponseHelper.Create <DailycupAttendGambleResponse>(MessageCode.DailycupGamblePointLimit); response.Data = new DailycupAttendGambleEntity(); response.Data.MaxGambleCount = maxCount; return(response); } //验证钻石数量 var pointCount = PayCore.Instance.GetPoint(managerId); if (pointCount < gamblePoint) { return(ResponseHelper.Create <DailycupAttendGambleResponse>(MessageCode.LackofGold)); } #endregion DailycupGambleEntity dailycupgamble = new DailycupGambleEntity(); dailycupgamble.DailyCupId = dailycupId; if (gambleResult == 1)//押主队 { dailycupgamble.GambleManagerId = match.HomeManager; dailycupgamble.GambleManagerName = match.HomeName; } else//押客队 { dailycupgamble.GambleManagerId = match.AwayManager; dailycupgamble.GambleManagerName = match.AwayName; } dailycupgamble.GambleResult = gambleResult; dailycupgamble.GamblePoint = gamblePoint; dailycupgamble.ResultPoint = 0; dailycupgamble.ManagerId = manager.Idx; dailycupgamble.MatchId = matchId; dailycupgamble.Status = 0; dailycupgamble.RowTime = DateTime.Now; dailycupgamble.RoundLevel = CalRoundType(dailycup.Round, match.Round); dailycupgamble.HomeName = match.HomeName; dailycupgamble.AwayName = match.AwayName; var isSuccess = DailycupGambleMgr.Insert(dailycupgamble); if (isSuccess) { DailycupMatchMgr.UpdateMatchChipInCount(matchId); //扣除钻石 var code = PayCore.Instance.GambleTrueMatch(managerId, gamblePoint, Guid.NewGuid().ToString()); if (code != MessageCode.Success) { SystemlogMgr.Error("杯赛押注", "押注成功,扣除钻石失败"); } var response = ResponseHelper.CreateSuccess <DailycupAttendGambleResponse>(); response.Data = new DailycupAttendGambleEntity(); dailycupgamble.TimeTick = ShareUtil.GetTimeTick(dailycupgamble.RowTime); response.Data.GambleData = dailycupgamble; response.Data.PopMsg = TaskHandler.Instance.DailycupGamble(managerId); if (hasTask) { //response.Data.PopMsg = TaskHandler.Instance.DailycupGamble(managerId); } //ActiveCore.Instance.AddActive(managerId, EnumActiveType.CupLeagueGuessing, 1); return(response); } else { return(ResponseHelper.Create <DailycupAttendGambleResponse>(MessageCode.NbUpdateFail)); } }