Ejemplo n.º 1
0
        public CrossladderManagerResponse GetManagerInfo(string siteId, Guid managerId)
        {
            var response = GetLadderManager(siteId, managerId);

            if (response.Code != ShareUtil.SuccessCode)
            {
                return(response);
            }
            var season = CacheFactory.CrossLadderCache.GetCurrentSeason();

            season.StartTick     = ShareUtil.GetTimeTick(season.Startdate);
            season.EndTick       = ShareUtil.GetTimeTick(season.Enddate.Date.AddDays(1).AddSeconds(-1));
            response.Data.Season = season;
            var rankEntity = CrossRankThread.Instance.GetMyRank(siteId, managerId, (int)EnumRankType.CrossLadderRank);

            if (rankEntity != null)
            {
                response.Data.MyRank        = rankEntity.Rank;
                response.Data.YesterdayRank = rankEntity.YesterdayRank;
            }
            else
            {
                response.Data.MyRank        = -1;
                response.Data.YesterdayRank = -1;
            }
            response.Data.WinRate = ManagerUtil.GetWinRate(managerId, EnumMatchType.CrossLadder, siteId);
            return(response);
        }
Ejemplo n.º 2
0
        public LadderManagerResponse GetManagerInfo(Guid managerId)
        {
            var manager = GetLadderManager(managerId);

            if (string.IsNullOrEmpty(manager.ExchangeIds) || CheckExchangeRefresh(manager.RefreshDate))
            {
                var equipmentProperties = "";
                var equipmentItemcode   = "";
                manager.ExchangeIds         = CacheFactory.LadderCache.GetExchanges(out equipmentItemcode, out equipmentProperties);
                manager.RefreshDate         = DateTime.Today.AddHours(21);//每天21点刷新
                manager.RefreshTimes        = 0;
                manager.ExchangedIds        = "";
                manager.EquipmentProperties = equipmentProperties;
                manager.EquipmentItems      = equipmentItemcode;
                LadderManagerMgr.Update(manager);
            }
            var season = CacheFactory.SeasonCache.GetCurrentSeason();

            season.StartTick = ShareUtil.GetTimeTick(season.Startdate);
            season.EndTick   = ShareUtil.GetTimeTick(season.Enddate.Date.AddDays(1).AddSeconds(-1));
            season.NowTick   = ShareUtil.GetTimeTick(DateTime.Now);
            var response = ResponseHelper.CreateSuccess <LadderManagerResponse>();

            response.Data        = manager;
            response.Data.Season = season;
            if (DateTime.Now.Hour >= 21)
            {
                response.Data.ExchangeRefreshTick =
                    ShareUtil.GetTimeTick(DateTime.Today.AddDays(1).AddHours(21));
            }
            else
            {
                response.Data.ExchangeRefreshTick =
                    ShareUtil.GetTimeTick(DateTime.Today.AddHours(21));
            }
            var rankEntity = RankLadderThread.Instance.GetMyRank(managerId, (int)EnumRankType.LadderRank);

            if (rankEntity != null)
            {
                response.Data.MyRank        = rankEntity.Rank;
                response.Data.YesterdayRank = rankEntity.YesterdayRank;
            }
            else
            {
                response.Data.MyRank        = -1;
                response.Data.YesterdayRank = -1;
            }
            response.Data.WinRate      = ManagerUtil.GetWinRate(managerId, EnumMatchType.Ladder);
            response.Data.RefreshPoint =
                CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.RefreshLadderExchange, manager.RefreshTimes + 1);
            response.Data.AllEquipmentProperties =
                CacheFactory.LeagueCache.AnalysisProperties(manager.EquipmentProperties);
            if (LadderCore.Instance._ManagerMatchCD.ContainsKey(managerId))
            {
                response.Data.CDTick = ShareUtil.GetTimeTick(_ManagerMatchCD[managerId]);
            }
            else
            {
                response.Data.CDTick = ShareUtil.GetTimeTick(DateTime.Now);
            }
            return(response);
        }