Beispiel #1
0
 internal bool SyncMembersCore(Guid managerId, EnumArenaType arenaType, DTOBuffMemberView buffData, string siteId = "")
 {
     try
     {
         if (null == buffData)
         {
             return(false);
         }
         if (string.IsNullOrEmpty(siteId))
         {
             int managerHash = ShareUtil.GetTableMod(managerId);
             //var idles = GetIdleMembers(managerId, buffData);
             string mSkills   = FrameConvert.SkillListToText(buffData.ManagerSkills);
             int    errorCode = 0;
             byte[] rowVer    = BitConverter.GetBytes(buffData.UseSyncVersion);
             NbManagerbuffmemberMgr.SyncBatch(managerId, buffData.Kpi, string.Empty, mSkills, rowVer, ref rowVer, ref errorCode);
             if (errorCode != 0)
             {
                 return(false);
             }
             buffData.UseSyncVersion = BitConverter.ToUInt64(rowVer, 0);
         }
         buffData.SyncIdleFlag = false;
         s_memBuffMember.Set(arenaType.ToString() + managerId.ToString(), buffData);
         return(true);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error(string.Format("BuffDataCore:Sync Manager[{0}]", managerId), ex);
         return(false);
     }
 }
Beispiel #2
0
        public ConstellationPackbager(Guid managerId, string zoneId = "")
        {
            var package = ConstellationPackageMgr.GetById(managerId, zoneId);

            if (package == null)
            {
                try
                {
                    package             = new ConstellationPackageEntity();
                    package.ManagerId   = managerId;
                    package.PackageSize = 480;
                    package.RowTime     = DateTime.Now;
                    package.ItemString  = new byte[0];
                    ConstellationPackageMgr.Insert(package);
                    package = ConstellationPackageMgr.GetById(managerId);
                }
                catch (Exception ex)
                {
                    SystemlogMgr.Error("星座背包加数据", ex);
                    package = null;
                }
            }
            _packageEntity = package;
            AnalysePackage();
        }
Beispiel #3
0
 /// <summary>
 /// 按数量删除物品
 /// </summary>
 /// <param name="item"></param>
 /// <param name="count"></param>
 /// <returns></returns>
 public MessageCode Delete(ConstellationInfoEntity item, int count = 1, bool isUserDelete = false)
 {
     if (item != null)
     {
         if (item.Status == (int)EnumItemStatus.Locked)
         {
             return(MessageCode.ItemIsLocked);
         }
         try
         {
             if (count > 0 && item.ItemCount > count)
             {
                 item.ItemCount -= count;
                 return(Update(item, count * -1));
             }
             else
             {
                 _itemsDic.Remove(item.ItemId);
                 _blanks.Add(item.GridIndex, item.GridIndex);
                 Items.Remove(item);
                 _itemCount--;
                 _synchronized = false;
                 return(MessageCode.Success);
             }
         }
         catch (Exception ex)
         {
             SystemlogMgr.Error("ConstellationPackageFrame Delete", ex);
             return(MessageCode.Exception);
         }
     }
     return(MessageCode.ItemNotExists);
 }
Beispiel #4
0
 public List <MonitorDailyeventEntity> GetListForShow()
 {
     try
     {
         var list = MonitorDailyeventMgr.GetListForShow(ShareUtil.ZoneId);
         if (list != null)
         {
             foreach (var entity in list)
             {
                 double date = Convert.ToDouble((DateTime.Now.Date - entity.OpenTime.Date).Days);
                 if (date < 0)
                 {
                     date = 0;
                 }
                 entity.OpenTimeTick  = ShareUtil.GetTimeTick(entity.OpenTime.AddDays(date));
                 entity.StartTimeTick = ShareUtil.GetTimeTick(entity.StartTime.AddDays(date));
                 entity.EndTimeTick   = ShareUtil.GetTimeTick(entity.EndTime.AddDays(date));
             }
         }
         return(list);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("DailyEventThread-GetListForShow", ex);
         return(null);
     }
 }
Beispiel #5
0
        /// <summary>
        /// 统计可领取的点卷
        /// </summary>
        /// <param name="account"></param>
        /// <param name="managerId"></param>
        /// <returns></returns>
        public MessageCode CalculatePoint(string account, Guid managerId)
        {
            var list = FriendinviteMgr.InviteManagerList(account);

            foreach (var item in list)
            {
                var charge = PayCore.Instance.GetPayUser(item.ByAccount);
                if (charge == null)
                {
                    continue;
                }
                try
                {
                    //总可得到点卷
                    var sumPoint = charge.ChargePoint *
                                   CacheFactory.AppsettingCache.GetAppSettingToInt(EnumAppsetting.FriendinvitePoint) / 100;
                    //未领取点卷
                    item.MayPrize = sumPoint - item.AlreadyPrize < 0 ? 0 : sumPoint - item.AlreadyPrize;
                    FriendinviteMgr.Update(item);
                }
                catch (Exception ex)
                {
                    SystemlogMgr.Error("好友邀请计算点卷出错", ex);
                    return(MessageCode.NbParameterError);
                }
            }
            return(MessageCode.Success);
        }
Beispiel #6
0
        private string StartGame(string openid, string state, string serverId, string nowTimestamp, string pf,
                                 string sessionId, string sign, string jsNeed, string nickName, string strCommon = "")
        {
            try
            {
                /* download-wyfth5.3333.cn/wyft1758/index.html?openid=pf+gid&state=xxx&serverId=8001&nowTimestamp=46546461321&pf=1758&sessionId&sign=xxx&jsNeed=0&nickName=xxx*/

                if (WebServerHandler.SetStartGameEntity(ShareUtil.PlatformCode, ShareUtil.PlatformZoneName, openid,
                                                        state,
                                                        serverId, pf, sessionId, jsNeed, nickName, strCommon))
                {
                    ;
                }
                {
                    return(UAErrorCode.ErrOther);
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("txa8 Charge", ex);
                Response.Write("{\"ret\":\"fail\",\"msg\":\"系统异常" + ex + "\"}");
                return(UAErrorCode.ErrException);
            }
            return(UAErrorCode.ErrOK);
        }
Beispiel #7
0
 public void RunJob(DateTime nextTime)
 {
     _nextTime = nextTime;
     try
     {
         var list = RankMgr.GetRankList(_rankType, _domainId);
         if (list == null)
         {
             return;
         }
         if (_rankType == EnumRankType.LevelRank)
         {
             foreach (var entity in list)
             {
                 var levelEntity = entity as RankLevelEntity;
                 if (levelEntity != null)
                 {
                     levelEntity.Exp = levelEntity.Exp +
                                       CacheFactory.ManagerDataCache.GetTotalExp(levelEntity.Level);
                 }
             }
         }
         _rankList    = list;
         _totalRecord = _rankList.Count;
         _rankLinkDic = _rankList.ToDictionary(d => d.ManagerId, d => d);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("RankHandler run job", "[" + _rankType + "]," + ex.Message, ex.StackTrace);
     }
 }
Beispiel #8
0
        public MessageCode RefreshStatus()
        {
            DateTime date = DateTime.Now;

            foreach (var item in _transferDic.Values)
            {
                if (date >= item.TransferDuration)
                {
                    item.Status = 3;//流拍。 从数据库删除
                    if (TransferMainMgr.Delete(item.TransferId))
                    {
                        var mail = new MailBuilder(item.SellId, item.ItemCode, item.ItemName, EnumMailType.TransferRunOff);
                        if (!mail.Save(item.SellZoneName))
                        {
                            SystemlogMgr.Error("邮件发送失败",
                                               "邮件发送失败,ManagerId:" + item.SellId + ",ZoneName:" + item.SellZoneName + ",ItemCode:" +
                                               item.ItemCode);
                        }
                        Remove(item.TransferId);
                    }
                }
            }
            foreach (var entity in _tenTransferList)
            {
                //过了10分钟的放到另外一个字典
                if (entity.TransferStartTime.AddMinutes(10) < date)
                {
                    _transferDic.TryAdd(entity.TransferId, entity);
                }
            }
            _tenTransferList = _tenTransferList.FindAll(r => r.TransferStartTime.AddMinutes(10) > date);
            Sort();
            return(MessageCode.Success);
        }
Beispiel #9
0
 MessageCode SaveExchange(CrossladderManagerEntity ladderManager, ItemPackageFrame package, CrossladderExchangerecordEntity ladderExchangerecord)
 {
     if (ladderManager == null || package == null || ladderExchangerecord == null)
     {
         return(MessageCode.NbUpdateFail);
     }
     try
     {
         if (!CrossladderManagerMgr.Update(ladderManager))
         {
             return(MessageCode.NbUpdateFail);
         }
         if (!package.Save())
         {
             return(MessageCode.NbUpdateFail);
         }
         if (!CrossladderExchangerecordMgr.Insert(ladderExchangerecord))
         {
             return(MessageCode.NbUpdateFail);
         }
         return(MessageCode.Success);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("CrossLadder-SaveExchange", ex);
         return(MessageCode.Exception);
     }
 }
Beispiel #10
0
        /// <summary>
        /// 获取用户转盘信息
        /// </summary>
        /// <param name="managerId"></param>
        /// <returns></returns>
        public GetTurntableInfoResponse GetManagerInfo(Guid managerId)
        {
            GetTurntableInfoResponse response = new GetTurntableInfoResponse();

            response.Data = new TurntableInfo();
            try
            {
                var turntable = new TurntableFrame(managerId);
                if (turntable == null)
                {
                    return(ResponseHelper.Create <GetTurntableInfoResponse>((int)MessageCode.NbParameterError));
                }
                var data = GetTurntableInfo(turntable);
                if (data == null)
                {
                    return(ResponseHelper.Create <GetTurntableInfoResponse>((int)MessageCode.NbParameterError));
                }
                response.Data = data;
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("获取经理转盘信息", ex);
                response.Code = (int)MessageCode.NbParameterError;
            }
            return(response);
        }
Beispiel #11
0
        /// <summary>
        /// 获取拍卖物品详情
        /// </summary>
        /// <param name="managerId"></param>
        /// <param name="zoneName"></param>
        /// <param name="transferId"></param>
        /// <returns></returns>
        public TransferMainResponse GetTransferInfo(Guid managerId, string zoneName, Guid transferId)
        {
            TransferMainResponse response = new TransferMainResponse();

            response.Data = new TransferMainEntity();
            try
            {
                if (!IsOpen(managerId, zoneName))
                {
                    return(ResponseHelper.Create <TransferMainResponse>(MessageCode.TransferNotOpen));
                }
                var entity = GetInfo(transferId);
                if (entity == null)
                {
                    return(ResponseHelper.Create <TransferMainResponse>(MessageCode.ItemSoldOut));
                }
                response.Data = entity;
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("获取拍卖详情", ex);
                response.Code = (int)MessageCode.NbParameterError;
            }
            return(response);
        }
Beispiel #12
0
 internal void Invoke(DateTime datetime)
 {
     // considered occasion that _scheduleTimes == -1 which means infinite
     if (!IsEnable || (_scheduleTimes >= 0 && _invokedTimes >= _scheduleTimes))
     {
         return;
     }
     if (datetime < _nextInvokedDateTime)
     {
         return;
     }
     if (0 == Interlocked.Exchange(ref _syncInvoke, 1))
     {
         try
         {
             InvokeImmediately(datetime);
         }
         catch (Exception ex)
         {
             SystemlogMgr.Error("Schedule info Invoke", ex);
         }
         finally
         {
             Interlocked.Exchange(ref _syncInvoke, 0);
         }
     }
 }
Beispiel #13
0
        public static MessageCode AddItems(string zoneId, Guid managerId, int itemCode, int itemCount, int strength,
                                           bool isBinding, bool isDeal, int slotColorCount = 0)
        {
            try
            {
                var package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.AdminAddItem, zoneId);
                if (package == null)
                {
                    return(MessageCode.NbParameterError);
                }
                var result = package.AddItems(itemCode, itemCount, strength, isBinding, isDeal, slotColorCount);
                if (result == MessageCode.Success)
                {
                    bool isSuccess = package.Save();
                    if (isSuccess)
                    {
                        package.Shadow.Save();
                    }
                    return(MessageCode.Success);
                }
                return(result);

                return(MessageCode.Exception);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("Admin AddItems", ex);
                return(MessageCode.Exception);
            }
        }
Beispiel #14
0
 public AdCache()
 {
     try
     {
         _prizeDic     = new Dictionary <int, List <ConfigPenaltykickprizeEntity> >();
         _exChangeList = new List <ConfigPenaltykickprizeEntity>();
         var allPrize = ConfigPenaltykickprizeMgr.GetAll();
         foreach (var item in allPrize)
         {
             if (item.PrizeType == 4)
             {
                 _exChangeList.Add(item);
             }
             else
             {
                 var key = GetKey(item.PrizeType, item.PrizeSub);
                 if (!_prizeDic.ContainsKey(key))
                 {
                     _prizeDic.Add(key, new List <ConfigPenaltykickprizeEntity>());
                 }
                 _prizeDic[key].Add(item);
             }
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("AdCache:Init", ex);
     }
 }
Beispiel #15
0
        /// <summary>
        /// Builds the match info.
        /// </summary>
        /// <param name="ladderId">The ladder id.</param>
        /// <param name="group">The group.</param>
        /// <param name="home">The home.</param>
        /// <param name="away">The away.</param>
        /// <param name="fightDic">The fight dic.</param>
        private void BuildMatchInfo(Guid ladderId, int group, LadderManagerEntity home, LadderManagerEntity away, ConcurrentDictionary <Guid, LadderMatchEntity> fightDic)
        {
            try
            {
                //筛选条件,当两个玩家分差超过阀值,将他们扔到排队池里继续等待
                //int tmpScore = home.Score - away.Score;
                //if (tmpScore <= _arenaLowScore || tmpScore >= _arenaHighScore)
                //{
                //    if (!home.IsBot)
                //        LadderCore.Instance.PushFightToCompetitor(home.Clone());
                //    if (!away.IsBot)
                //        LadderCore.Instance.PushFightToCompetitor(away.Clone());
                //    return;
                //}

                var matchId     = ShareUtil.GenerateComb();
                var ladderMatch = new LadderMatchEntity(home, away, matchId, ladderId, group + 1);
                fightDic.TryAdd(ladderMatch.Idx, ladderMatch);

                MemcachedFactory.LadderMatchClient.Set(ladderMatch.Idx, ladderMatch);
                //更新经理-比赛关联字典
                if (!home.IsBot)
                {
                    LadderCore.Instance.ManagerFightDic[home.ManagerId] = matchId;
                }
                if (!away.IsBot)
                {
                    LadderCore.Instance.ManagerFightDic[away.ManagerId] = matchId;
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("LadderThread-BuildMatchInfo", ex.Message, ex.StackTrace);
            }
        }
Beispiel #16
0
 /// <summary>
 /// 位置不适应 -BUFF
 /// </summary>
 /// <param name="buffMember">Buff列表</param>
 /// <param name="ballParkPoint">场上位置</param>
 /// <param name="playerposition">球员最佳位置</param>
 private static void CheckBuff(NbManagerbuffmemberEntity buffMember, string ballParkPoint, string playerposition)
 {
     try
     {
         var config = CacheFactory.FormationCache.GetFormationPoint(playerposition, ballParkPoint);
         if (config == null)
         {
             return;
         }
         buffMember.AccelerationConst = buffMember.AccelerationConst * config.Buff / 100;
         buffMember.AggressionConst   = buffMember.AggressionConst * config.Buff / 100;
         buffMember.BalanceConst      = buffMember.BalanceConst * config.Buff / 100;
         buffMember.BounceConst       = buffMember.BounceConst * config.Buff / 100;
         buffMember.DisturbConst      = buffMember.DisturbConst * config.Buff / 100;
         buffMember.DribbleConst      = buffMember.DribbleConst * config.Buff / 100;
         buffMember.FreeKickConst     = buffMember.FreeKickConst * config.Buff / 100;
         buffMember.HandControlConst  = buffMember.HandControlConst * config.Buff / 100;
         buffMember.InterceptionConst = buffMember.InterceptionConst * config.Buff / 100;
         buffMember.MentalityConst    = buffMember.MentalityConst * config.Buff / 100;
         buffMember.PassConst         = buffMember.PassConst * config.Buff / 100;
         buffMember.PhysiqueConst     = buffMember.PhysiqueConst * config.Buff / 100;
         buffMember.PositioningConst  = buffMember.PositioningConst * config.Buff / 100;
         buffMember.PowerConst        = buffMember.PowerConst * config.Buff / 100;
         buffMember.ResponseConst     = buffMember.ResponseConst * config.Buff / 100;
         buffMember.ShootConst        = buffMember.ShootConst * config.Buff / 100;
         buffMember.SpeedConst        = buffMember.SpeedConst * config.Buff / 100;
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("位置不适应 -BUFF", ex.ToString(), ballParkPoint + "__" + playerposition);
     }
 }
Beispiel #17
0
        /// <summary>
        /// Builds the bot.
        /// </summary>
        private void BuildBot(LadderInfoEntity ladderInfo)
        {
            var managerFightList = ladderInfo.FightList;

            var competitorCount = managerFightList.Count;

            try
            {
                var botCount = 4 - competitorCount % 4;
                if (botCount > 0 && botCount < 4)
                {
                    managerFightList.Sort(new CompareArenaManager());

                    var minScore = managerFightList[0].Score;
                    var maxScore = managerFightList[competitorCount - 1].Score;

                    var botList = LadderManagerMgr.GetBot(botCount, minScore, maxScore);
                    if (botList != null)
                    {
                        foreach (var list in botList)
                        {
                            list.Name  = _botName;
                            list.IsBot = true;
                            managerFightList.Add(list);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("LadderThread-BuildBot", ex.Message, ex.StackTrace);
            }
        }
Beispiel #18
0
 /// <summary>
 ///随机得到一个奥运金牌
 /// </summary>
 /// <param name="managerId"></param>
 /// <param name="getType"></param>
 /// <returns></returns>
 public int GetOlympicTheGoldMedal(Guid managerId, EnumOlympicGeyType getType)
 {
     try
     {
         if (!IsActivity)
         {
             return(0);
         }
         if (!_theGoldMedalRate.ContainsKey((int)getType))
         {
             return(0);
         }
         foreach (var item in _theGoldMedalRate[(int)getType])
         {
             if (RandomHelper.CheckPercentage(item.Rate))
             {
                 if (AddTheGoldMedal(managerId, item.TheGoldMedalId, 1))
                 {
                     return(item.TheGoldMedalId);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("奥运金牌", ex);
     }
     return(0);
 }
Beispiel #19
0
        /// <summary>
        /// 获取公告
        /// </summary>
        /// <param name="platform"></param>
        /// <returns></returns>
        public GetPlatformAnnouncementResponse GetPlatformAnnouncement(string platform = "")
        {
            GetPlatformAnnouncementResponse response = new GetPlatformAnnouncementResponse();

            response.Data = new GetPlatformAnnouncement();
            try
            {
                if (platform == "")
                {
                    platform = "all";
                }
                var announcement = GetAnnouncement(platform);
                if (announcement == null)
                {
                    announcement = GetAnnouncement("all");
                }
                response.Data.AnnouncementList = new List <AnnouncementEntity>();
                if (announcement != null)
                {
                    response.Data.AnnouncementList.Add(announcement);
                }
                if (_TopAnnouncementDic != null)
                {
                    response.Data.AnnouncementList.Add(_TopAnnouncementDic);
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("获取公告", ex);
                response.Code = (int)MessageCode.NbParameterError;
            }
            return(response);
        }
Beispiel #20
0
        /// <summary>
        /// 天梯赛清除CD参数
        /// </summary>
        /// <param name="managerId"></param>
        /// <returns></returns>
        public LadderClearCDParaResponse LadderClearCDPara(Guid managerId)
        {
            LadderClearCDParaResponse response = new LadderClearCDParaResponse();

            response.Data = new LadderClearCDPara();
            try
            {
                if (_ManagerMatchCD.ContainsKey(managerId))
                {
                    if (DateTime.Now >= _ManagerMatchCD[managerId])
                    {
                        response.Code = (int)MessageCode.LadderCdEnd;
                    }
                    var manager = ManagerCore.Instance.GetManager(managerId);
                    if (manager.VipLevel > 0)
                    {
                        response.Data.Point = LadderVipClearCDPrice;
                    }
                    else
                    {
                        response.Data.Point = LadderNotVipClearCDPrice;
                    }
                }
                else
                {
                    response.Code = (int)MessageCode.LadderCdEnd;
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("天梯赛清除cd参数", ex);
            }
            return(response);
        }
Beispiel #21
0
        /// <summary>
        /// 获取签到信息
        /// </summary>
        /// <param name="managerId"></param>
        /// <returns></returns>
        public DailyAttendanceInfoResponse GetDailyAttendanceInfo(Guid managerId)
        {
            try
            {
                var manager = ManagerCore.Instance.GetManager(managerId);
                if (manager == null)
                {
                    return(ResponseHelper.InvalidParameter <DailyAttendanceInfoResponse>());
                }

                int days;
                var dailyAttendManager = GetManager(managerId, manager.Name, out days);
                var response           = ResponseHelper.Create <DailyAttendanceInfoResponse>(MessageCode.Success);
                response.Data = new DailyAttendanceInfo
                {
                    AttendTimes    = dailyAttendManager.AttendTimes,
                    MaxAttendTimes = days,
                    IsAttend       = dailyAttendManager.IsAttend
                };
                //IsAttendance = dailyAttendManager.IsAttend;
                return(response);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("GetDailyAttendanceInfo", ex);
                return(ResponseHelper.Create <DailyAttendanceInfoResponse>(MessageCode.Exception));
            }
        }
Beispiel #22
0
        MessageCode SaveExchange(LadderManagerEntity ladderManager, ItemPackageFrame package, LadderExchangerecordEntity ladderExchangerecord)
        {
            if (ladderManager == null || package == null || ladderExchangerecord == null)
            {
                return(MessageCode.NbUpdateFail);
            }
            try
            {
                using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault()))
                {
                    transactionManager.BeginTransaction();
                    var messageCode = Tran_SaveExchange(transactionManager.TransactionObject, ladderManager, package, ladderExchangerecord);

                    if (messageCode == ShareUtil.SuccessCode)
                    {
                        transactionManager.Commit();
                    }
                    else
                    {
                        transactionManager.Rollback();
                    }
                    return(messageCode);
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("SaveExchange", ex);
                return(MessageCode.Exception);
            }
        }
Beispiel #23
0
        /// <summary>
        /// 获取好友邀请成长奖励
        /// </summary>
        /// <param name="account"></param>
        /// <param name="managerId"></param>
        /// <returns></returns>
        public InviteFriendGrowUpPrizeResponse GetInviteFriendGrowUpPrize(string account, Guid managerId)
        {
            InviteFriendGrowUpPrizeResponse response = new InviteFriendGrowUpPrizeResponse();

            response.Data             = new InviteFriendGrowUpPrize();
            response.Data.ManagerList = new List <FriendManagerInfo>();
            try
            {
                var list = GetFrindInviteList(account);
                if (list == null)
                {
                    return(response);
                }
                var mayPrize = list.Sum(r => r.MayPrize);
                response.Data.IsHavePrize  = mayPrize > 0;
                response.Data.NotPoint     = mayPrize;
                response.Data.AlreadyPoint = list.Sum(r => r.AlreadyPrize);

                foreach (var item in list)
                {
                    FriendManagerInfo info = new FriendManagerInfo();
                    info.HavePoint = item.AlreadyPrize;
                    info.Level     = item.NLevel;
                    info.Name      = item.Name;
                    response.Data.ManagerList.Add(info);
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("获取好友邀请成长奖励", ex);
                response.Code = (int)MessageCode.NbParameterError;
            }
            return(response);
        }
Beispiel #24
0
 /// <summary>
 /// Inits the cache.
 /// </summary>
 void InitCache()
 {
     try
     {
         var seasonList = LadderSeasonMgr.GetAll();
         _seasonDic = seasonList.ToDictionary(d => d.Idx, d => d);
         DateTime curDate = DateTime.Today.AddDays(-31);
         int      count   = 0;
         _dateSeasonDic = new Dictionary <DateTime, LadderSeasonEntity>(600);
         foreach (var entity in seasonList)
         {
             if (entity.Enddate >= curDate)
             {
                 var date = entity.Enddate.Subtract(entity.Startdate).TotalDays + 1;
                 for (int i = 0; i < date; i++)
                 {
                     _dateSeasonDic.Add(entity.Startdate.AddDays(i), entity);
                 }
                 count++;
                 if (count > 40)
                 {
                     return;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("SeasonCache-InitCache", ex);
     }
 }
Beispiel #25
0
 public MatchProcessResponse GetMatchProcess(Guid matchId, int matchType)
 {
     try
     {
         var baseData = MemcachedFactory.MatchClient.Get <BaseMatchData>(matchId);
         if (baseData != null)
         {
             if (baseData.ErrorCode != (int)MessageCode.Success)
             {
                 return(ResponseHelper.Create <MatchProcessResponse>(baseData.ErrorCode));
             }
         }
         var process = MemcachedFactory.MatchProcessClient.Get <byte[]>(matchId);
         if (process == null)
         {
             process = proxy.GetMatchProcess(matchId, matchType);
             if (process == null)
             {
                 return(ResponseHelper.Create <MatchProcessResponse>(MessageCode.MatchMiss));
             }
         }
         var response = ResponseHelper.CreateSuccess <MatchProcessResponse>();
         response.Data = process;
         return(response);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("GetMatchProcess", ex);
         return(ResponseHelper.Exception <MatchProcessResponse>());
     }
 }
Beispiel #26
0
 /// <summary>
 /// 停止所有挂机
 /// </summary>
 /// <returns></returns>
 public MessageCode StopHookJob()
 {
     try
     {
         var hooklist = _hookDic.Values.ToList();
         foreach (var item in hooklist)
         {
             try
             {
                 if (HookEnd(item.ManagerId, EnumHookStatus.Stop))
                 {
                     LadderCore.Instance.LeaveLadder(item.ManagerId);
                 }
             }
             catch (Exception ex)
             {
                 SystemlogMgr.Error("停止天梯赛挂机", ex);
             }
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("CheckStatusJob", ex);
         return(MessageCode.Exception);
     }
     CreateHook();
     return(MessageCode.Success);
 }
Beispiel #27
0
 /// <summary>
 /// 更新物品
 /// </summary>
 /// <param name="item">物品</param>
 /// <returns>成功返回true</returns>
 public MessageCode Update(ConstellationInfoEntity item, int operationCount = 1)
 {
     if (!CheckLapover(item.ItemType, item.ItemCount))
     {
         return(MessageCode.ItemLapOver);
     }
     try
     {
         for (int i = 0; i < Items.Count; i++)
         {
             if (Items[i].Equals(item))
             {
                 Items[i]      = item;
                 _synchronized = false;
                 return(MessageCode.Success);
             }
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("ConstellationPackageFrame Update", ex);
         return(MessageCode.Exception);
     }
     return(MessageCode.ItemNotExists);
 }
Beispiel #28
0
        /// <summary>
        /// Runs the arena.
        /// </summary>
        void RunLadder()
        {
            _needClearFightDic = false;
            LadderInfoEntity ladderInfo = LadderCore.Instance.GetCompetitorToMatch();

            //更新最近一次平均等待时间
            var avgWaitTime = CalAvgWaitSecond(ladderInfo.GroupingTime, ladderInfo.FightList);

            LadderCore.Instance.RecentlyAvgWaitSecond = avgWaitTime;

            //开始获取机器人
            BuildBot(ladderInfo);
            var playerNumber = ladderInfo.FightList.Count;

            if (playerNumber % 4 != 0)//检查玩家数量是否是4的倍数
            {
                //将天梯赛服务状态置为结束
                LadderCore.Instance.Status = EnumLadderStatus.End;
                //将上一轮比赛的经理池清空,暂时没有异常回退方案
                LadderCore.Instance.ManagerFightDic = new Dictionary <Guid, Guid>();
                SystemlogMgr.Info("LadderThread", "The player is " + playerNumber.ToString() + " not multiple of 4");
                return;
            }
            //开始分组
            var fightDic = new ConcurrentDictionary <Guid, LadderMatchEntity>();

            Grouping(ladderInfo, fightDic);
            LadderRunEnd();
            //将天梯赛数据扔到Process中
            ladderInfo.CountdownTime = DateTime.Now;
            ladderInfo.PlayerNumber  = playerNumber;
            ladderInfo.AvgWaitTime   = avgWaitTime;

            _nbThreadPool.Add(() => RunMatch(fightDic, ladderInfo));
        }
Beispiel #29
0
 MessageCode Save_TranReceiveBindPoint(PayUserEntity payUser, InvestManagerEntity investInfo)
 {
     try
     {
         using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault()))
         {
             transactionManager.BeginTransaction();
             var code = Tran_ReceiveBindPoint(payUser, investInfo, transactionManager.TransactionObject);
             if (code == ShareUtil.SuccessCode)
             {
                 transactionManager.Commit();
             }
             else
             {
                 transactionManager.Rollback();
             }
             return(code);
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("ReceiveBindPoint", ex);
         return(MessageCode.Exception);
     }
 }
Beispiel #30
0
        static string GetSession(string key, bool withTime, out DateTime setTime)
        {
            setTime = DateTime.Now;
            string val = string.Empty;

            try
            {
                val = MemcachedFactory.OnlineSessionClient.Get <string>(key);
                if (!string.IsNullOrEmpty(val))
                {
                    if (withTime && val.Length >= 19)
                    {
                        DateTime.TryParseExact(val.Substring(0, 19), "yyyy-MM-dd HH:mm:ss", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out setTime);
                        val = val.Substring(19);
                        if (DateTime.Now.Subtract(setTime).TotalSeconds >= _expireTime / 2)
                        {
                            SetSession(key, val, withTime);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("OnlineRules:SetSession", ex);
            }
            return(val);
        }