private void InitMatch() { DateTime date = DateTime.Now; //排除1个月之前的比赛 var allMatch = EuropeMatchMgr.GetAllMatvch(date.AddDays(-30)); var allLogo = ConfigGambleiconMgr.GetAll(); _logoDic = allLogo.ToDictionary(r => r.Name.Trim(), r => r.Idx); _allMatch = new ConcurrentDictionary <DateTime, List <EuropeMatchEntity> >(); _oneMatch = new ConcurrentDictionary <int, EuropeMatchEntity>(); foreach (var item in allMatch) { item.HomeLogo = GetLogo(item.HomeName); item.AwayLogo = GetLogo(item.AwayName); item.MatchTimeTick = ShareUtil.GetTimeTick(item.MatchTime); if (!_allMatch.ContainsKey(item.MatchDate)) { _allMatch.TryAdd(item.MatchDate, new List <EuropeMatchEntity>()); } _allMatch[item.MatchDate].Add(item); _oneMatch.TryAdd(item.MatchId, item); } //是否有比赛 _matchInfoDic = new Dictionary <long, bool>(); for (int i = -7; i <= 7; i++) { var isMatch = EuropeMatchMgr.GetIsMatch(date.Date.AddDays(i)) > 0; _matchInfoDic.Add(ShareUtil.GetTimeTick(date.Date.AddDays(i)), isMatch); } }
private void EgretInfo() { var token = GetParam("token"); var time = ShareUtil.GetTimeTick(DateTime.Now); var appId = (int)UAEnum.EgretAppId; var appkey = AppsettingCache.Instance.GetAppSetting(EnumAppsetting.EgretAppKey); var sign = CryptHelper.GetMD5("token=" + token + "time=" + time + "appId=" + appId + appkey); var str = "token=" + token + "&time=" + time + "&appId=" + appId + "&sign=" + sign; var url = UAFactory.Instance.GetRedirectURL(UAFactory.Instance.FactoryName, "useraction"); var result = UAHelper.HttpPost(url, str); JavaScriptSerializer serializer = new JavaScriptSerializer(); var r1 = serializer.Deserialize <PostResult>(result); if (r1.Code == 0) { try { var r2 = serializer.Deserialize <EgretInfo>(result); var response = new EgretInfoResponse(); response.Code = 0; response.Data = r2; OutputHelper.Output(response); } catch (Exception ex) { } } else { OutputHelper.OutputParameterError(); } }
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); }
public ScoutingInfoResponse GetScoutingInfo(Guid managerId) { var manager = ManagerCore.Instance.GetManager(managerId); if (manager == null) { return(ResponseHelper.InvalidParameter <ScoutingInfoResponse>()); } var response = ResponseHelper.CreateSuccess <ScoutingInfoResponse>(); response.Data = new ScoutingInfoEntity(); response.Data.Coin = manager.Coin; response.Data.Point = PayCore.Instance.GetPoint(manager.Account); response.Data.FriendShipPoint = manager.FriendShipPoint; var list = CacheFactory.ScoutingCache.GetShowList(DateTime.Now); if (ActivityExThread.Instance.IsActivity(EnumActivityExEffectType.ScoutingHalfPrice, 0, 0)) { foreach (var item in list) { int price = item.CurrencyCount; ActivityExThread.Instance.ScoutingHalfPrice(ref price); item.CurrencyCount = price; } } response.Data.ShowList = list; var managerExtra = ManagerCore.Instance.GetManagerExtra(managerId); if (managerExtra != null) { response.Data.CoinFreeTimeTick = ShareUtil.GetTimeTick(managerExtra.CoinScoutingUpdate); response.Data.PointFreeTimeTick = ShareUtil.GetTimeTick(managerExtra.ScoutingUpdate); response.Data.FriendShipPointFreeTimeTick = ShareUtil.GetTimeTick(managerExtra.FriendScoutingUpdate); } var scoutingManager = GetById(managerId); if (scoutingManager != null) { response.Data.CoinNeedCount = GetLotteryNeedCount(scoutingManager.CoinLotteryCount); response.Data.PointNeedCount = GetLotteryNeedCount(scoutingManager.PointLotteryCount); response.Data.FriendShipPointNeedCount = GetLotteryNeedCount(scoutingManager.FriendLotteryCount); } else { response.Data.CoinNeedCount = 10; response.Data.PointNeedCount = 10; response.Data.FriendShipPointNeedCount = 10; } var scoutingGoldBar = ScoutingGoldbarMgr.GetById(managerId); response.Data.GoldBarNeedCount = 10; if (scoutingGoldBar != null) { response.Data.GoldBar = scoutingGoldBar.GoldBarNumber; response.Data.GoldBarNeedCount = scoutingGoldBar.ScoutingNumber == 0 ? 10 : 10 - scoutingGoldBar.ScoutingNumber % 10; } return(response); }
/// <summary> /// 获取我的竞猜列表 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public GetMyEuropeGambleResponse GetMyGamble(Guid managerId) { GetMyEuropeGambleResponse response = new GetMyEuropeGambleResponse(); try { var managerList = EuropeGamblerecordMgr.GambleRecord(managerId); response.Data = new GetMyEuropeGamble(); foreach (var item in managerList) { var match = EuropeConfig.Instance.GetOneMatch(item.MatchId); if (match != null) { item.HomeName = match.HomeName; item.AwayName = match.AwayName; item.TimeTick = ShareUtil.GetTimeTick(item.RowTime); } } response.Data.GambleList = managerList; } catch (Exception ex) { SystemlogMgr.Error("获取我的竞猜列表", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
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); } }
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); } }
public LadderRefreshExchangeResponse RefreshExchange(Guid managerId) { var entity = GetLadderManager(managerId); entity.RefreshTimes++; var mallDirect = new MallDirectFrame(managerId, EnumConsumeSourceType.RefreshLadderExchange, entity.RefreshTimes); var checkCode = mallDirect.Check(); if (checkCode != MessageCode.Success) { return(ResponseHelper.Create <LadderRefreshExchangeResponse>(checkCode)); } var equipmentProperties = ""; var equipmentItemcode = ""; entity.ExchangeIds = CacheFactory.LadderCache.GetExchanges(out equipmentItemcode, out equipmentProperties); entity.ExchangedIds = ""; entity.EquipmentProperties = equipmentProperties; entity.EquipmentItems = equipmentItemcode; using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); checkCode = mallDirect.Save(Guid.NewGuid().ToString(), transactionManager.TransactionObject); if (checkCode != MessageCode.Success) { transactionManager.Rollback(); return(ResponseHelper.Create <LadderRefreshExchangeResponse>(checkCode)); } if (!LadderManagerMgr.Update(entity, transactionManager.TransactionObject)) { transactionManager.Rollback(); return(ResponseHelper.Create <LadderRefreshExchangeResponse>(MessageCode.NbUpdateFail)); } transactionManager.Commit(); } var response = ResponseHelper.CreateSuccess <LadderRefreshExchangeResponse>(); response.Data = new LadderRefreshExchangeEntity(); response.Data.ExchangeIds = entity.ExchangeIds; response.Data.ManagerPoint = mallDirect.RemainPoint; response.Data.RefreshPoint = CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.RefreshLadderExchange, entity.RefreshTimes + 1); response.Data.Honor = entity.Honor; 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)); } response.Data.AllEquipmentProperties = CacheFactory.LadderCache.AnalysisProperties(entity.EquipmentProperties); response.Data.LadderCoin = entity.LadderCoin; return(response); }
public PlayerKillOpponentResponse GetOpponents(Guid managerId, string opponentName) { var info = InnerGetInfo(managerId); if (info == null) { return(ResponseHelper.InvalidParameter <PlayerKillOpponentResponse>("managerId")); } var manager = ManagerCore.Instance.GetManager(managerId, true); if (manager == null) { return(ResponseHelper.InvalidParameter <PlayerKillOpponentResponse>("managerId")); } if (manager.Coin < 200) { return(ResponseHelper.Create <PlayerKillOpponentResponse>(MessageCode.LackofCoin)); } var response = ResponseHelper.CreateSuccess <PlayerKillOpponentResponse>(); if (!string.IsNullOrEmpty(opponentName)) { var opponent = PlayerkillInfoMgr.GetOpponentByName(opponentName, 1); if (opponent == null) { return(ResponseHelper.Create <PlayerKillOpponentResponse>(MessageCode.MissManager)); } else if (opponent.Level < _pkMinLevel) { return(ResponseHelper.Create <PlayerKillOpponentResponse>(MessageCode.PlayerKillMinLevel)); } PlayerKillOpponentListEntity opponentList = new PlayerKillOpponentListEntity(); opponentList.Opponents = new List <PlayerKillOpponentEntity>(1); opponent.FormationId = TeammemberCore.Instance.GetSolution(opponent.ManagerId).FormationId; opponentList.Opponents.Add(opponent); response.Data = opponentList; } else { RefreshOpponent(info, manager.Kpi); response.Data = new PlayerKillOpponentListEntity(); response.Data.Opponents = info.Opponents; } if (response.Data != null && response.Data.Opponents.Count > 0) { //扣除金币 ManagerCore.Instance.CostCoin(manager, 200, EnumCoinConsumeSourceType.PkMatchRefresh, ShareUtil.GenerateComb().ToString()); } response.Data.OpponentRefreshTimeTick = ShareUtil.GetTimeTick(info.OpponentRefreshTime); return(response); }
/// <summary> /// 天梯赛清除CD /// </summary> /// <param name="managerId"></param> /// <returns></returns> public LadderClearCDResponse LadderClearCD(Guid managerId) { LadderClearCDResponse response = new LadderClearCDResponse(); response.Data = new LadderClearCD(); try { if (_ManagerMatchCD.ContainsKey(managerId)) { if (DateTime.Now >= _ManagerMatchCD[managerId]) { response.Code = (int)MessageCode.LadderCdEnd; } var manager = ManagerCore.Instance.GetManager(managerId); int point = 0; if (manager.VipLevel > 0) { point = LadderVipClearCDPrice; } else { point = LadderNotVipClearCDPrice; } var pointNumber = PayCore.Instance.GetPoint(managerId); if (pointNumber < point) { response.Code = (int)MessageCode.NbPointShortage; return(response); } var messCode = PayCore.Instance.GambleConsume(managerId, point, ShareUtil.GenerateComb(), EnumConsumeSourceType.LadderClearCD); if (messCode == MessageCode.Success) { _ManagerMatchCD[managerId] = DateTime.Now; response.Data.CDTick = ShareUtil.GetTimeTick(DateTime.Now); response.Data.Point = pointNumber - point; } } else { response.Code = (int)MessageCode.LadderCdEnd; } } catch (Exception ex) { SystemlogMgr.Error("天梯赛清除CD", ex); } return(response); }
public PlayerkillInfoResponse GetInfo(Guid managerId) { var info = InnerGetInfo(managerId); var manager = ManagerCore.Instance.GetManager(managerId, true); if (manager == null) { return(ResponseHelper.Create <PlayerkillInfoResponse>((int)MessageCode.MissManager)); } if (info.LotteryMatchId != Guid.Empty) { info.HasLottery = true; } if (DateTime.Now > info.OpponentRefreshTime) { RefreshOpponent(info, manager.Kpi); } else if (ShareUtil.CheckBytes(info.OpponentInfo)) { info.Opponents = SerializationHelper.FromByte <List <PlayerKillOpponentEntity> >(info.OpponentInfo); if (info.Opponents == null) { RefreshOpponent(info, manager.Kpi); } else if (!info.Opponents.Exists(d => d.HasWin == false)) { RefreshOpponent(info, manager.Kpi); } } else { RefreshOpponent(info, manager.Kpi); } var response = ResponseHelper.CreateSuccess <PlayerkillInfoResponse>(); info.RemainTimes = 6;//CacheFactory.PlayerKillCache.GetChallengeTimes(manager.Level) - info.RemainTimes + info.BuyTimes; var managerExtra = ManagerCore.Instance.GetManagerExtra(managerId); if (managerExtra != null) { info.ResumeStaminaTimeTick = ShareUtil.GetTimeTick(managerExtra.ResumeStaminaTime.AddSeconds(ManagerCore.Instance.GetResumeStaminaTimeConfig(manager.VipLevel))); } info.OpponentRefreshTimeTick = ShareUtil.GetTimeTick(info.OpponentRefreshTime); info.TotalPoint = CacheFactory.PlayerKillCache.GetTotalPoint(manager.VipLevel); response.Data = info; return(response); }
TurntableInfo GetTurntableInfo(TurntableFrame turntable) { TurntableInfo data = new TurntableInfo(); var turntableManager = turntable.TurntableManagerEntity; data.DayProduceLuckyCoin = turntableManager.DayProduceLuckyCoin; data.FreeOfChargeNumber = turntableManager.GiveLuckyCoin; data.LuckyCoin = turntableManager.LuckyCoin; data.TurntableType = turntableManager.TurntableType; data.NextResetPoint = turntable.GetResetPoint(); data.ItemList = turntable.GetTurntableList(); data.StartTimeTick = ShareUtil.GetTimeTick(startTime); data.EndTimeTick = ShareUtil.GetTimeTick(endTime); return(data); }
public CrosscrowdInfoResponse GetCrowdInfo(string siteId) { var crowd = CrossCrowdManager.Instance.GetCurrent(siteId); if (crowd == null) { return(ResponseHelper.Create <CrosscrowdInfoResponse>(MessageCode.CrowdNoData)); } crowd.StartTick = ShareUtil.GetTimeTick(crowd.StartTime); crowd.EndTick = ShareUtil.GetTimeTick(crowd.EndTime); var response = ResponseHelper.CreateSuccess <CrosscrowdInfoResponse>(); response.Data = crowd; return(response); }
/// <summary> /// 获取奥运金牌数量 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public OlympicGetInfoResponse GetManagerInfo(Guid managerId) { OlympicGetInfoResponse response = new OlympicGetInfoResponse(); response.Data = new OlympicGetInfo(); try { var info = GetInfo(managerId); response.Data.TheGoldMedalDic = info.TheGoldMedalDic; response.Data.StartTimeTick = ShareUtil.GetTimeTick(startTime); response.Data.EndTimeTick = ShareUtil.GetTimeTick(endTime); } catch (Exception ex) { SystemlogMgr.Error("获取奥运金牌", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
public string IsRegistByNameList() { var data = GetParamNOUrlDecode("data"); string serverid = GetParam("serverId"); string time = GetParam("time"); string sign = GetParam("sign"); if (string.IsNullOrEmpty(data) || string.IsNullOrEmpty(serverid) || string.IsNullOrEmpty(time) || string.IsNullOrEmpty(sign)) { return(UAErrorCode.ErrDataOP); } var key = CacheFactory.AppsettingCache.GetAppSetting(EnumAppsetting.H5_A8DataKey); var appSign = CryptHelper.GetMD5(data + serverid + time + key).ToLower(); if (sign != appSign) { return(UAErrorCode.ErrCheckSign); } data = GetParam("data"); //UAHelper.WriteLog("IsRegistByNameList", "|" + data + "|" + serverid + "|" + time + "|" + sign + "|"); var managerList = WebServerHandler.IsRegistByNameList(platFormKey, serverid, data); if (managerList == null || managerList.Length <= 0 || string.IsNullOrEmpty(managerList[0].Name)) { return(UAErrorCode.ErrNoUser); } string str = ""; foreach (var manager in managerList) { var rowTime = manager.RowTime; var registTime = ShareUtil.GetTimeTick(rowTime); str += "{\"name\":\"" + manager.Name + "\",\"serverId\":\"" + serverid + "\",\"gamelevel\":\"" + manager.Level + "\",\"registtime\":\"" + registTime + "\"},"; } string r = str.Substring(0, str.Length - 1); return("{\"code\":\"0\",\"data\":[" + r + "]}"); }
public MailDataResponse GetMailData(Guid managerId) { int totalCount = 0; var response = ResponseHelper.CreateSuccess <MailDataResponse>(); response.Data = new MailDataEntity(); var list = MailInfoMgr.GetByManager(managerId, ref totalCount); if (list != null && list.Count > 0) { foreach (var entity in list) { entity.MailTick = ShareUtil.GetTimeTick(entity.RowTime); entity.MailExpiredTick = ShareUtil.GetTimeTick(entity.ExpiredTime); entity.MailAttachment = SerializationHelper.FromByte <MailAttachmentEntity>(entity.Attachment); } } response.Data.Mails = list; response.Data.TotalCount = totalCount; return(response); }
/// <summary> /// 获取我的竞猜活动 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public EuropeGambleResponse GetMyActivity(Guid managerId) { EuropeGambleResponse response = new EuropeGambleResponse(); try { var info = GetMyGambleInfo(managerId); var prizeList = info.PrizeRecord.Split(','); int setp = EuropeConfig.Instance.GetStepByWin(info.CorrectNumber); bool isUpdate = false; for (int i = 1; i <= 4; i++) { if (prizeList.Length < i) { isUpdate = true; prizeList[i - 1] = "0"; } if (prizeList[i - 1] == "0" && setp >= i) { isUpdate = true; prizeList[i - 1] = "1"; } } info.PrizeRecord = String.Join(",", prizeList); if (isUpdate) { info.UpdateTime = DateTime.Now; EuropeGambleMgr.Update(info); } info.ActivityEndTime = ShareUtil.GetTimeTick(EuropeConfig.Instance.EndTime); response.Data = info; } catch (Exception ex) { SystemlogMgr.Error("欧洲杯获取我的竞猜活动", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
/// <summary> /// 活动提示接口 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public PenaltyKickGetActivityInfoResponse GetActivityInfo(Guid managerId) { var response = new PenaltyKickGetActivityInfoResponse(); response.Data = new PenaltyKickGetActivityInfo(); try { DateTime date = DateTime.Now; //入口在活动结束2天后关闭 if (_seasonInfo.StartTime <= date && _seasonInfo.EndTime >= DateTime.Now.AddDays(-2)) { response.Data.IsActivity = true; } var info = GetManager(managerId); if (info != null) { if (info.FreeNumber > 0 || info.GameCurrency > 0) { response.Data.IsPrompt = true; } } else if (IsActivity) { response.Data.IsPrompt = true; } else { response.Data.IsPrompt = false; } response.Data.StartTimeTick = ShareUtil.GetTimeTick(_seasonInfo.StartTime); response.Data.EndTimeTick = ShareUtil.GetTimeTick(_seasonInfo.EndTime); } catch (Exception ex) { SystemlogMgr.Error("点球获取活动信息", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
LadderHookInfoResponse BuildHookInfoResponse(LadderHookEntity entity, bool isHook) { var response = ResponseHelper.CreateSuccess <LadderHookInfoResponse>(); response.Data = new LadderHookInfoEntity(); response.Data.IsHook = isHook; response.Data.CurTimes = entity.CurTimes; response.Data.CurWiningTimes = entity.CurWiningTimes; response.Data.MaxScore = entity.MaxScore; response.Data.MaxTimes = entity.MaxTimes; response.Data.MinScore = entity.MinScore; response.Data.LadderHookList = new List <LadderHook>(); if (_hookListDic.ContainsKey(entity.ManagerId)) { response.Data.LadderHookList = _hookListDic[entity.ManagerId]; } var curTime = DateTime.Now; response.Data.NextMatchWaitSeconds = isHook ? ShareUtil.CalWaitTime(entity.NextMatchTime, curTime) : 0; response.Data.ExpiredTick = ShareUtil.GetTimeTick(entity.Expired); return(response); }
public RankResponse GetResponse(Guid managerId, int pageIndex, int pageSize) { var response = ResponseHelper.CreateSuccess <RankResponse>(); response.Data = new RankDataEntity(); response.Data.MyRank = -1; int start = pageSize * (pageIndex - 1); int max = pageSize; if (_totalRecord > 0) { if ((start + pageSize) > _totalRecord) { max = _totalRecord - start; } if (max > 0) { response.Data.Ranks = _rankList.GetRange(start, max); } } response.Data.NextTimeTick = ShareUtil.GetTimeTick(_nextTime); response.Data.TotalCount = _totalRecord; response.Data.TotalPage = ShareUtil.CalPageCount(_totalRecord, pageSize); var entity = GetMyRankEntity(managerId); response.Data.MyRank = entity.Rank; if (entity.Rank > 0) { response.Data.MyData = entity.GetData(); response.Data.MyExtra = entity.GetExtraData(); } else { response.Data.MyData = GetMyData(managerId); } return(response); }
public TransferThread(int domainId) { _domainId = domainId; var transferList = TransferMainMgr.GetTransferList(_domainId); _transferDic = new ConcurrentDictionary <Guid, TransferMainEntity>(); _tenTransferList = new List <TransferMainEntity>(); foreach (var item in transferList) { item.TransferDurationTick = ShareUtil.GetTimeTick(item.TransferDuration); item.TransferDurationTick = ShareUtil.GetTimeTick(item.TransferDuration); if (DateTime.Now < item.TransferStartTime.AddMinutes(10)) { var modId = ShareUtil.GetTableMod(item.TransferId); item.ModId = modId; _tenTransferList.Add(item); } else { _transferDic.TryAdd(item.TransferId, item); } } Sort(); }
/// <summary> /// 获取活动信息 /// </summary> /// <param name="managerId"></param> /// <param name="zoneName"></param> /// <returns></returns> public CrossActivityInfoResponse GetActivityInfo(Guid managerId, string zoneName) { CrossActivityInfoResponse response = new CrossActivityInfoResponse(); response.Data = new CrossActivityInfo(); try { if (!IsActivity) { response.Data.IsOpen = false; return(response); } var managerInfo = NbManagerMgr.GetById(managerId, zoneName); if (managerInfo == null) { return(ResponseHelper.Create <CrossActivityInfoResponse>(MessageCode.NbParameterError)); } var maxCount = CacheFactory.VipdicCache.GetEffectValue(managerInfo.VipLevel, (int)EnumVipEffect.BeThankfulActivity); var usedNumber = CrossactivityRecordMgr.GetActivityNumber(managerId, DateTime.Now.Date); response.Data.MaxNumber = maxCount; response.Data.UsedNumber = usedNumber; response.Data.GoldBar = _ActivityInfo.GoldBarNumber; //response.Data.PrizeList = CacheFactory.TurntableCache.GetAllPrize(); response.Data.IsOpen = true; response.Data.ActivityEnd = ShareUtil.GetTimeTick(_ActivityInfo.EndTime); response.Data.ActivityStart = ShareUtil.GetTimeTick(_ActivityInfo.StartTime); response.Data.IsPrompt = maxCount > usedNumber; } catch (Exception ex) { SystemlogMgr.Error("获取跨服活动信息", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
public LaegueRefreshExchangeResponse RefreshExchange(Guid managerId) { var manager = ManagerCore.Instance.GetManager(managerId); if (manager == null) { return(ResponseHelper.InvalidParameter <LaegueRefreshExchangeResponse>()); } var entity = LaegueManagerinfoMgr.GetById(managerId); entity.RefreshTimes++; var mallDirect = new MallDirectFrame(managerId, EnumConsumeSourceType.RefreshLeagueExchange, entity.RefreshTimes); var checkCode = mallDirect.Check(); if (checkCode != MessageCode.Success) { return(ResponseHelper.Create <LaegueRefreshExchangeResponse>(checkCode)); } var equipmentProperties = ""; var equipmentItemcode = ""; string codeString = ""; var leagueManager = LaegueManagerinfoMgr.GetById(managerId); if (leagueManager == null) { return(ResponseHelper.InvalidParameter <LaegueRefreshExchangeResponse>()); } if (!string.IsNullOrEmpty(leagueManager.ExchangeIds)) { var itemList = leagueManager.ExchangeIds.Split('|'); foreach (var item in itemList) { var itemcode = item.Split(',')[1]; if (itemcode.IndexOf("39") == 0) { codeString += item + "|"; } } if (codeString.Length > 0) { codeString = codeString.Substring(0, codeString.Length - 1); } } entity.ExchangeIds = CacheFactory.LeagueCache.GetExchanges(manager.Level >= 60, out equipmentItemcode, out equipmentProperties, true, codeString); entity.ExchangedIds = ""; entity.EquipmentProperties = equipmentProperties; entity.EquipmentItems = equipmentItemcode; using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); checkCode = mallDirect.Save(Guid.NewGuid().ToString(), transactionManager.TransactionObject); if (checkCode != MessageCode.Success) { transactionManager.Rollback(); return(ResponseHelper.Create <LaegueRefreshExchangeResponse>(checkCode)); } if (!LaegueManagerinfoMgr.Update(entity, transactionManager.TransactionObject)) { transactionManager.Rollback(); return(ResponseHelper.Create <LaegueRefreshExchangeResponse>(MessageCode.NbUpdateFail)); } transactionManager.Commit(); } var response = ResponseHelper.CreateSuccess <LaegueRefreshExchangeResponse>(); DateTime date = DateTime.Now; if (DateTime.Now.Hour >= 21) { date = DateTime.Today.AddDays(1).AddHours(21);//每天21点刷新 } else { date = DateTime.Today.AddHours(21); } response.Data = new LeagueRefreshExchangeEntity { ExchangeIds = entity.ExchangeIds, ManagerPoint = mallDirect.RemainPoint, SumScore = entity.SumScore, RefreshPoint = CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.RefreshLeagueExchange, entity.RefreshTimes + 1), AllEquipmentProperties = CacheFactory.LeagueCache.AnalysisProperties(entity.EquipmentProperties), NextRefreshTick = ShareUtil.GetTimeTick(date) }; return(response); }
/// <summary> /// 获取多个Buff /// </summary> /// <param name="managerId">经理Id</param> /// <param name="unitType">Buff细分类型</param> /// <param name="fillSource">是否填充源</param> /// <param name="syncFlag">缓存标记</param> /// <param name="buffCodes">Buff枚举</param> /// <returns></returns> public DTOBuffValue[] GetBuffValues(Guid managerId, EnumBuffUnitType unitType = EnumBuffUnitType.None, bool fillSource = false, bool syncFlag = true, params EnumBuffCode[] buffCodes) { if (null == buffCodes || buffCodes.Length == 0) { return(null); } int cnt = buffCodes.Length; var arr = new DTOBuffValue[cnt]; int buffId = 0; DTOBuffValue obj = null; Dictionary <int, DTOBuffValue> dic = null; bool multiFlag = cnt > 1; if (multiFlag) { dic = new Dictionary <int, DTOBuffValue>(cnt); for (int i = 0; i < buffCodes.Length; ++i) { buffId = (int)buffCodes[i]; if (!dic.TryGetValue(buffId, out obj)) { obj = new DTOBuffValue(buffId); dic[buffId] = obj; } arr[i] = obj; } } else { buffId = (int)buffCodes[0]; obj = new DTOBuffValue(buffId); arr[0] = obj; } var pools = GetBuffSource(managerId, unitType, syncFlag); if (null == pools || pools.Count == 0) { return(arr); } int[] buffIds = null; DateTime dtNow = DateTime.Now; foreach (var item in pools) { if (item.ExpiryTime <= dtNow) { continue; } buffIds = BuffCache.Instance().GetBaseBuffArray(item.BuffMap); if (null == buffIds) { continue; } foreach (int val in buffIds) { if (!multiFlag && val != buffId || multiFlag && !dic.TryGetValue(val, out obj)) { continue; } obj.Point += (double)item.BuffVal; obj.Percent += (double)item.BuffPer; if (fillSource) { if (null == obj.SrcList) { obj.SrcList = new List <DTOBuffSource>(); } obj.SrcList.Add(new DTOBuffSource() { Idx = item.Id, SkillCode = item.SkillCode, SkillLevel = item.SkillLevel, Point = (double)item.BuffVal, Percent = (double)item.BuffPer, ExpiryTime = ShareUtil.GetTimeTick(item.ExpiryTime), }); } if (!multiFlag) { break; } } } if (multiFlag) { dic.Clear(); } return(arr); }
//获取联赛积分商城数据 public LaegueManagerinfoResponse GetLeagueMallInfo(Guid managerId) { var manager = ManagerCore.Instance.GetManager(managerId); if (manager == null) { return(ResponseHelper.InvalidParameter <LaegueManagerinfoResponse>()); } var leagueManager = LaegueManagerinfoMgr.GetById(managerId); if (leagueManager == null) { return(ResponseHelper.InvalidParameter <LaegueManagerinfoResponse>()); } if (string.IsNullOrEmpty(leagueManager.ExchangeIds) || CheckExchangeRefresh(leagueManager.RefreshDate)) { var equipmentProperties = ""; var equipmentItemcode = ""; bool isReplace = false; string codeString = ""; if (!string.IsNullOrEmpty(leagueManager.ExchangeIds) && leagueManager.RefreshDate.Month != DateTime.Now.Month) { isReplace = true; var itemList = leagueManager.ExchangeIds.Split('|'); foreach (var item in itemList) { var itemcode = item.Split(',')[1]; if (itemcode.IndexOf("39") == 0) { codeString += item + "|"; } } if (codeString.Length > 0) { codeString = codeString.Substring(0, codeString.Length - 1); } } leagueManager.ExchangeIds = CacheFactory.LeagueCache.GetExchanges(manager.Level >= 60, out equipmentItemcode, out equipmentProperties, isReplace, codeString); leagueManager.RefreshDate = DateTime.Now; leagueManager.RefreshTimes = 0; leagueManager.ExchangedIds = ""; leagueManager.EquipmentProperties = equipmentProperties; leagueManager.EquipmentItems = equipmentItemcode; LaegueManagerinfoMgr.Update(leagueManager); } var response = ResponseHelper.CreateSuccess <LaegueManagerinfoResponse>(); response.Data = leagueManager; response.Data.RefreshPoint = CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.RefreshLeagueExchange, leagueManager.RefreshTimes + 1); response.Data.AllEquipmentProperties = CacheFactory.LeagueCache.AnalysisProperties(leagueManager.EquipmentProperties); DateTime date = DateTime.Now; if (DateTime.Now.Hour >= 21) { date = DateTime.Today.AddDays(1).AddHours(21);//每天21点刷新 } else { date = DateTime.Today.AddHours(21); } response.Data.NextRefreshTick = ShareUtil.GetTimeTick(date); return(response); }
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); }
/// <summary> /// 获取竞技场信息 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public ArenaGetInfoResponse GetArenaResponse(Guid managerId) { ArenaGetInfoResponse response = new ArenaGetInfoResponse(); response.Data = new ArenaGetInfo(); try { int myChampionNumber = 0; var arenaInfo = GetArenaInfo(managerId); var result = new ArenaGetInfo(); if (arenaInfo != null && IsStart) { result.Integral = arenaInfo.Integral; myChampionNumber = arenaInfo.ChampionNumber; result.DanGrading = arenaInfo.DanGrading; if (arenaInfo.DanGrading == 1) { result.IsMaxDanGrading = true; } else { var dangradingConfig = CacheFactory.ArenaCache.GetDangrading(arenaInfo.DanGrading); result.UpIntegral = dangradingConfig.Integral - arenaInfo.Integral; } switch (arenaInfo.ArenaType) { case 1: result.IsIntoMatch = arenaInfo.Teammember1Status; break; case 2: result.IsIntoMatch = arenaInfo.Teammember2Status; break; case 3: result.IsIntoMatch = arenaInfo.Teammember3Status; break; case 4: result.IsIntoMatch = arenaInfo.Teammember4Status; break; case 5: result.IsIntoMatch = arenaInfo.Teammember5Status; break; } } result.MyRank = GetRank(managerId); if (arenaInfo == null) { result.DanGrading = 15; } result.ArenaType = _seasonInfo.ArenaType; result.EndTimeTick = ShareUtil.GetTimeTick(_seasonInfo.EndTime); result.StartTimeTick = ShareUtil.GetTimeTick(_seasonInfo.StartTime); result.MyChampionNumber = myChampionNumber; result.OnChampionName = _seasonInfo.OnChampionName; result.OnChampionZoneName = _seasonInfo.OnChampionZoneName; result.Status = _seasonInfo.Status; result.TheKingChampionNumber = _seasonInfo.TheKingChampionNumber; result.TheKingName = _seasonInfo.TheKingName; result.TheKingZoneName = _seasonInfo.TheKingZoneName; result.StaminaEntity = RestoreStamina(arenaInfo); response.Data = result; } catch (Exception ex) { SystemlogMgr.Error("获取竞技场信息", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
/// <summary> /// 体力恢复 /// </summary> /// <param name="arenaManagerInfo"></param> /// <param name="isUpdate"></param> /// <returns></returns> public ArenaStamina RestoreStamina(ArenaManagerinfoEntity arenaManagerInfo, bool isUpdate = false) { ArenaStamina response = new ArenaStamina(); DateTime dateTime = DateTime.Now; try { int staminaStartStopHour = 1; int staminaEndStopHour = 8; //用于比较的恢复时间截止点 DateTime restoreTime = dateTime; int hour = dateTime.Hour; response.IsRestoreStamina = true; //恢复时间截止1点 if (hour >= staminaStartStopHour && hour < staminaEndStopHour) { restoreTime = dateTime.Date.AddHours(staminaStartStopHour); response.IsRestoreStamina = false; } if (arenaManagerInfo == null) { response.Stamina = CacheFactory.ArenaCache.ArenaMaxStamina; response.MaxStamina = CacheFactory.ArenaCache.ArenaMaxStamina; return(response); } var vipLevel = 0; var manager = ManagerCore.Instance.GetManager(arenaManagerInfo.ManagerId, arenaManagerInfo.SiteId); if (manager != null) { vipLevel = manager.VipLevel; } //获取多少秒恢复1点体力 var restoreTimes = CacheFactory.ArenaCache.StaminaRestoreTime(vipLevel); var presentStamina = arenaManagerInfo.Stamina; response.Stamina = presentStamina; response.MaxStamina = arenaManagerInfo.MaxStamina; response.Stamina = arenaManagerInfo.Stamina; response.RestoreTimes = restoreTimes; if (arenaManagerInfo.Stamina >= arenaManagerInfo.MaxStamina) { return(response); } //每天8点恢复所有体力 if (hour >= staminaEndStopHour && arenaManagerInfo.StaminaRestoreTime < DateTime.Now.Date.AddHours(staminaEndStopHour)) { arenaManagerInfo.StaminaRestoreTime = DateTime.Now.AddDays(-1); } //上次恢复体力距离现在时间 var lastTime = (int)restoreTime.Subtract(arenaManagerInfo.StaminaRestoreTime).TotalSeconds; if (lastTime <= 0) { return(response); } //恢复多少体力 var stamina = lastTime / restoreTimes; if (stamina <= 0) { response.NextRestoreStaminaTick = ShareUtil.GetTimeTick(arenaManagerInfo.StaminaRestoreTime.AddSeconds(restoreTimes)); return(response); } arenaManagerInfo.Stamina += stamina; if (arenaManagerInfo.Stamina > arenaManagerInfo.MaxStamina) { arenaManagerInfo.Stamina = arenaManagerInfo.MaxStamina; } presentStamina = arenaManagerInfo.Stamina; arenaManagerInfo.StaminaRestoreTime = dateTime; if (arenaManagerInfo.Stamina < arenaManagerInfo.MaxStamina) { //恢复体力后多出来的秒数 var surplusTime = lastTime % restoreTimes; arenaManagerInfo.StaminaRestoreTime = dateTime.AddSeconds(-surplusTime); //下次恢复时间 response.NextRestoreStaminaTick = ShareUtil.GetTimeTick(arenaManagerInfo.StaminaRestoreTime.AddSeconds(restoreTimes)); } else { response.NextRestoreStaminaTick = 0; } response.Stamina = presentStamina; response.MaxStamina = arenaManagerInfo.MaxStamina; response.Stamina = arenaManagerInfo.Stamina; response.RestoreTimes = restoreTimes; if (isUpdate) { ArenaManagerinfoMgr.Update(arenaManagerInfo); } } catch (Exception ex) { SystemlogMgr.Error("体力恢复", ex); } return(response); }
void UpdateTime(object sender, EventArgs e) { _serverTime = _serverTime.AddSeconds(1); lblServerTime.Content = _serverTime.ToString("yyyy-MM-dd HH:mm:ss"); lblServerTimeTick.Content = ShareUtil.GetTimeTick(_serverTime); }
/// <summary> /// 开始拍卖 /// </summary> /// <param name="managerId"></param> /// <param name="zoneName"></param> /// <param name="itemId"></param> /// <param name="price"></param> /// <param name="transferDuration"></param> public AuctionItemResponse AuctionItem(Guid managerId, string zoneName, Guid itemId, int price, int transferDuration) { var response = new AuctionItemResponse(); response.Data = new AuctionItemEntity(); try { DateTime date = DateTime.Now; var manager = NbManagerMgr.GetById(managerId, zoneName); if (manager == null) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.AdMissManager)); } if (!IsOpen(managerId, zoneName, manager)) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.TransferNotOpen)); } //已经挂牌了多少个 var number = TransferMainMgr.GetTransferNumber(managerId); //最多可以挂牌多少个 var gambleCountMax = CacheFactory.VipdicCache.GetEffectValue(manager.VipLevel, EnumVipEffect.TransferNumber); if (gambleCountMax <= number) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.TransferNumberMax)); } var package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.Transfer, zoneName); if (package == null) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NbNoPackage)); } if (price < 2) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.StartPriceSmall)); } var item = package.GetItem(itemId); if (item == null) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.ItemNotExists)); } if (!item.IsDeal) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NotDeal)); } var strength = item.GetStrength(); if (strength > 1) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NotDeal)); } var iteminfo = CacheFactory.ItemsdicCache.GetItem(item.ItemCode); if (iteminfo == null) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.ItemNotExists)); } //默认86400秒 24小时 TransferMainEntity entity = new TransferMainEntity(ShareUtil.GenerateComb(), _domainId, item.ItemCode, iteminfo.ItemName, new byte[0], manager.Name, managerId, zoneName, price, "", "", 0, Guid.Empty, date, date.AddDays(1), 0, 0, 0, date, date); var messageCode = package.Delete(itemId); if (messageCode != MessageCode.Success) { return(ResponseHelper.Create <AuctionItemResponse>(messageCode)); } if (!package.Save()) { return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NbUpdateFail)); } if (!TransferMainMgr.Insert(entity)) { messageCode = package.AddItem(item.ItemCode); if (messageCode != MessageCode.Success) { SystemlogMgr.Error("拍卖返还物品失败", "拍卖返还物品失败,managerId:" + managerId + ",zoneName:" + zoneName + "物品ID:" + item.ItemCode); } return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NbUpdateFail)); } package.Shadow.Save(); entity.TransferDurationTick = ShareUtil.GetTimeTick(entity.TransferDuration); entity.TransferDurationTick = ShareUtil.GetTimeTick(entity.TransferDuration); var modId = ShareUtil.GetTableMod(entity.TransferId); entity.ModId = modId; _tenTransferList.Add(entity); Sort(); response.Data.MyTransferList = GetMyTransfer(managerId); response.Data.MaxTransferNumber = gambleCountMax; response.Data.HaveTransferNumber = number + 1; var goldBarEntity = ScoutingGoldbarMgr.GetById(managerId, zoneName); if (goldBarEntity != null) { response.Data.MyGoldBar = goldBarEntity.GoldBarNumber; } } catch (Exception ex) { SystemlogMgr.Error("开始拍卖", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }