Example #1
0
        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);
            }
        }
Example #2
0
        /// <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);
                }
            }
        }
Example #3
0
        /// <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));
            }
        }