void BindData() { var accountData = Master.GetAccount(); if (accountData == null) { Master.ShowMessage("请先选择经理."); return; } ClearData(); var solution = NbSolutionMgr.GetById(accountData.ManagerId, accountData.ZoneId); if (solution == null) { Master.ShowMessage("没有数据."); return; } var teammembers = TeammemberMgr.GetByManager(accountData.ManagerId, accountData.Mod, accountData.ZoneId); if (teammembers != null) { foreach (var teammember in teammembers) { teammember.Name = AdminCache.Instance.GetPlayerName(teammember.PlayerId); teammember.IsMain = solution.PlayerString.Contains(teammember.PlayerId.ToString()); } datagrid1.DataSource = teammembers; datagrid1.DataBind(); } }
public static List <TeammemberEntity> GetRawMembers(Guid managerId, bool syncFlag = true, string siteId = "") { try { List <TeammemberEntity> list = null; if (syncFlag) { list = MemcachedFactory.TeammembersClient.Get <List <TeammemberEntity> >(managerId); } if (null != list && list.Count > 0) { return(list); } list = TeammemberMgr.GetByManager(managerId, ShareUtil.GetTableMod(managerId), siteId); TeammemberGrowEntity grow = null; var growList = TeammemberGrowMgr.GetByManager(managerId, siteId); foreach (var entity in list) { if (!entity.IsHirePlayer) { grow = growList.Find(d => d.Idx == entity.Idx); if (grow != null) { entity.GrowLevel = grow.GrowLevel; } } if (entity.UsedPlayerCard != null && entity.UsedPlayerCard.Length > 0) { entity.PlayerCard = SerializationHelper.FromByte <PlayerCardUsedEntity>(entity.UsedPlayerCard); } if (entity.UsedEquipment != null && entity.UsedEquipment.Length > 0) { entity.Equipment = SerializationHelper.FromByte <EquipmentUsedEntity>(entity.UsedEquipment); } TeammemberDataHelper.CalPropertyCount(entity); if (entity.IsHirePlayer) { TeammemberDataHelper.CalMaxGrow(entity, null); } else { TeammemberDataHelper.CalMaxGrow(entity, grow, siteId); } entity.RawProperty = new TeammemberPropertyEntity(entity); } if (syncFlag && list.Count > 0) { MemcachedFactory.TeammembersClient.Set(managerId, list); } return(list); } catch (Exception ex) { SystemlogMgr.Error("GetRawMembers", string.Format("mid:{0}", managerId), ex); throw ex; } }
TeammemberResponse SaveSetEquipment(TeammemberEntity teammember, ItemPackageFrame package, byte[] newEquipData, int mod) { int returnCode = 0; string errorMessage = ""; TeammemberMgr.SetEquipment(teammember.Idx, teammember.ManagerId, mod, newEquipData, package.NewItemString, package.RowVersion, ref returnCode, ref errorMessage); if (!string.IsNullOrEmpty(errorMessage)) { SystemlogMgr.Error("SaveSetEquipment", errorMessage); } if (returnCode == ShareUtil.SuccessCode) { teammember.UsedEquipment = newEquipData; return(BuildTeammemberResponse(teammember.ManagerId, teammember.Idx, true)); } else { return(ResponseHelper.Create <TeammemberResponse>(returnCode)); } }
//void UpdateActivitystatisticsDouyuEntity(ActivityDyUserEntity user, // ActivitystatisticsDouyuEntity adEntity) //{ // if (adEntity == null) // { // adEntity = new ActivitystatisticsDouyuEntity(); // adEntity.ManagerId = user.ManagerId; // adEntity.ZoneName = user.ZoneName; // adEntity.ZoneId = user.ZoneId; // adEntity.Account = user.Account; // adEntity.ExctingId = user.ExcitingId; // adEntity.CurData = user.Curdata; // adEntity.Status = user.Status; // adEntity.Strength7 = user.Strength7; // adEntity.Strength9 = user.Strength9; // adEntity.UpdateTime = DateTime.Now; // adEntity.RowTime = DateTime.Now; // ActivitystatisticsDouyuMgr.Insert(adEntity); // } // else // { // adEntity.CurData = user.Curdata; // adEntity.Status = user.Status; // adEntity.Strength7 = user.Strength7; // adEntity.Strength9 = user.Strength9; // adEntity.UpdateTime = DateTime.Now; // ActivitystatisticsDouyuMgr.Update(adEntity); // } //} void CreateActivityDyUserStrength(string zoneId, ActivityDyUserEntity entity) { var mod = ShareUtil.GetTableMod(entity.ManagerId); var list = TeammemberMgr.GetByManager(entity.ManagerId, mod, zoneId); if (list.Count > 0) { foreach (var teammemberEntity in list) { var playercardEntity = SerializationHelper.FromByte <PlayerCardUsedEntity>(teammemberEntity.UsedPlayerCard); if (playercardEntity != null) { if (playercardEntity.Property.Strength >= 7) { entity.Strength7++; if (playercardEntity.Property.Strength == 9) { entity.Strength9++; } } } } } var package = ItemCore.Instance.GetPackageWithoutShadow(entity.ManagerId, zoneId); var items = package.GetItemsByType((int)EnumItemType.PlayerCard); foreach (var item in items) { int strength = item.GetStrength(); if (strength >= 7) { entity.Strength7++; if (strength == 9) { entity.Strength9++; } } } }
public MessageCode BackSaveSolution(Guid managerId, NbSolutionEntity solution, int[] newPids, List <TeammemberEntity> members) { if (null == solution) { return(MessageCode.Success); } if (newPids.Length != SystemConstants.TeammemberCount) { return(MessageCode.TeammemberInvalidCount); } if (null == members) { members = MatchDataHelper.GetTeammembers(managerId, null, true); } List <int> tempPids = new List <int>(newPids.Length); int veteranCount = 0; int orangeCount = 0; int combCount = 0; foreach (var pId in newPids) { int id = ConvertHelper.ConvertToInt(pId); if (!members.Exists(d => d.PlayerId == id)) { return(MessageCode.TeammemberInvalidPlayer); } if (tempPids.Contains(id)) { return(MessageCode.TeammemberSolutionPlayerRepeat); } tempPids.Add(id); var player = CacheFactory.PlayersdicCache.GetPlayer(id); if (player.CardLevel == (int)EnumPlayerCardLevel.Gold || player.CardLevel == (int)EnumPlayerCardLevel.Silver) { veteranCount++; } else if (player.CardLevel == (int)EnumPlayerCardLevel.Orange || player.CardLevel == (int)EnumPlayerCardLevel.BlackGold) { orangeCount++; } } int veteranNumber = _maxVeteranCount; var manager = NbManagerextraMgr.GetById(managerId); if (manager == null) { return(MessageCode.NbParameterError); } if (manager.VeteranNumber > _maxVeteranCount) { veteranNumber = manager.VeteranNumber; } if (veteranCount > veteranNumber) { return(MessageCode.TeammemberVeteranCountOver); } combCount = ManagerSkillCache.Instance().GetCombsNum(tempPids.ToArray()); string playerString = string.Join(",", newPids); if (!TeammemberMgr.SaveSolution(managerId, solution.FormationId, playerString, veteranCount, orangeCount, combCount)) { return(MessageCode.NbUpdateFail); } //DeleteSolutionCache(managerId, true); return(MessageCode.Success); }
public NBSolutionInfoResponse SaveSolution(Guid managerId, int formationId, string playerString, bool hasTask) { var solution = MatchDataHelper.GetSolution(managerId); if (solution == null) { return(ResponseHelper.InvalidParameter <NBSolutionInfoResponse>()); } bool isChangePlayer = solution.PlayerString != playerString; string[] pIds = playerString.Split(','); if (pIds.Length != SystemConstants.TeammemberCount) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberInvalidCount)); } var formation = CacheFactory.FormationCache.GetFormation(formationId); if (formation == null) { return(ResponseHelper.InvalidParameter <NBSolutionInfoResponse>()); } var teammembers = MatchDataHelper.GetTeammembers(managerId, null, true); List <int> tempPids = new List <int>(pIds.Length); int veteranCount = 0; int orangeCount = 0; int combCount = 0; foreach (var pId in pIds) { int id = ConvertHelper.ConvertToInt(pId); if (!teammembers.Exists(d => d.PlayerId == id)) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberInvalidPlayer)); } if (tempPids.Contains(id)) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberSolutionPlayerRepeat)); } tempPids.Add(id); var player = CacheFactory.PlayersdicCache.GetPlayer(id); if (player.CardLevel == (int)EnumPlayerCardLevel.Gold || player.CardLevel == (int)EnumPlayerCardLevel.Silver) { veteranCount++; } else if (player.CardLevel == (int)EnumPlayerCardLevel.Orange || player.CardLevel == (int)EnumPlayerCardLevel.BlackGold) { orangeCount++; } } foreach (var tempPid in tempPids) { var linkList = CacheFactory.PlayersdicCache.GetLinkPlayerList(tempPid); if (linkList != null) { foreach (var link in linkList) { if (tempPids.Exists(d => d == link)) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberSolutionPlayerRepeat)); } } } } int veteranNumber = _maxVeteranCount; var manager = NbManagerextraMgr.GetById(managerId); if (manager == null) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.NbParameterError)); } if (manager.VeteranNumber > _maxVeteranCount) { veteranNumber = manager.VeteranNumber; } if (veteranCount > veteranNumber) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberVeteranCountOver)); } combCount = ManagerSkillCache.Instance().GetCombsNum(tempPids.ToArray()); if (TeammemberMgr.SaveSolution(managerId, formationId, playerString, veteranCount, orangeCount, combCount)) { DeleteSolutionCache(managerId, true); ActivityExThread.Instance.TememberColect(managerId, 3, orangeCount); var response = SolutionAndTeammemberResponse(managerId); if (hasTask && isChangePlayer) { var pop = TaskHandler.Instance.SolutionChangePlayer(managerId); if (response.Data != null) { response.Data.PopMsg = pop; } } return(response); } else { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.NbUpdateFail)); } }
/// <summary> /// 替换上场 /// </summary> /// <param name="managerId"></param> /// <param name="teammemberId"></param> /// <param name="byTeammemberId"></param> /// <returns></returns> public NBSolutionInfoResponse ReplacePlayer(Guid managerId, Guid teammemberId, Guid byTeammemberId) { bool isChanagePlayer = false; try { ItemPackageFrame package = null; MessageCode messCode = MessageCode.Success; var soluti = MatchDataHelper.GetSolution(managerId); if (soluti == null) { return(ResponseHelper.InvalidParameter <NBSolutionInfoResponse>()); } var byteammember = GetTeammember(managerId, byTeammemberId); if (byteammember == null || !soluti.PlayerDic.ContainsKey(byteammember.PlayerId)) { return(ResponseHelper.Create <NBSolutionInfoResponse>((int)MessageCode.TeammemberNotMain)); } var teammember = GetTeammember(managerId, teammemberId); var playerString = ""; var playerIdList = FrameUtil.CastIntList(soluti.PlayerString, ','); if (teammember != null) { ExchangePlayer(playerIdList, teammember.PlayerId, byteammember.PlayerId, false, ref playerString); soluti.PlayerString = playerString; if (!NbSolutionMgr.Update(soluti)) { return(ResponseHelper.Create <NBSolutionInfoResponse>((int)MessageCode.NbUpdateFail)); } MemcachedFactory.SolutionClient.Delete(managerId); KpiHandler.Instance.RebuildKpi(managerId, true); var manager = MatchDataHelper.GetManager(managerId, true, true); if (manager == null) { return(ResponseHelper.Create <NBSolutionInfoResponse>((int)MessageCode.NbParameterError)); } var response1 = SolutionAndTeammemberResponse(managerId); return(response1); //换位置 } else //换替补 { isChanagePlayer = true; package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.TeammemberTrans); if (package == null) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.NbNoPackage)); } var player = package.GetPlayer(teammemberId); if (player.ItemType != (int)EnumItemType.PlayerCard) { return(ResponseHelper.Exception <NBSolutionInfoResponse>()); } player.IsDeal = false; var itemInfo = CacheFactory.ItemsdicCache.GetItem(player.ItemCode); //限制金卡 if (itemInfo != null && itemInfo.ItemType == (int)EnumItemType.PlayerCard && itemInfo.PlayerCardLevel == (int)EnumPlayerCardLevel.Gold) { var solution = MatchDataHelper.GetSolutionInfo(managerId); if (solution == null) { return(ResponseHelper.InvalidParameter <NBSolutionInfoResponse>()); } if (solution.MaxVeteranCount <= solution.VeteranCount) { return (ResponseHelper.Create <NBSolutionInfoResponse>( (int)MessageCode.TeammemberVeteranCountOver)); } } var pid = player.ItemCode % 100000; //检查是否已有相同pid的球员 var linkList = CacheFactory.PlayersdicCache.GetLinkPlayerList(pid); if (linkList != null) { foreach (var link in linkList) { if (playerIdList.Exists(d => d == link)) { return(ResponseHelper.Create <NBSolutionInfoResponse>(MessageCode.TeammemberSolutionPlayerRepeat)); } } } int teammemberCount = 0; int returnCode = 0; TeammemberMgr.GetForTransCheck(managerId, pid, ShareUtil.GetTableMod(managerId), (int)MessageCode.TeammemberRepeat, ref teammemberCount, ref returnCode); if (returnCode != (int)MessageCode.Success) { return(ResponseHelper.Create <NBSolutionInfoResponse>(returnCode)); } messCode = package.ReplacePlayerCard(100000 + byteammember.PlayerId, false, byteammember.Strength, byteammember.Idx, byteammember.Equipment, player.ItemId, byteammember.Level); ExchangePlayer(playerIdList, pid, byteammember.PlayerId, true, ref playerString); soluti.PlayerString = playerString; if (messCode != MessageCode.Success) { return(ResponseHelper.Create <NBSolutionInfoResponse>(messCode)); } } using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); messCode = MessageCode.NbUpdateFail; do { if (package != null) { if (!package.SavePlayer(transactionManager.TransactionObject)) { break; } } if (!NbSolutionMgr.Update(soluti, transactionManager.TransactionObject)) { break; } messCode = MessageCode.Success; } while (false); if (messCode == MessageCode.Success) { transactionManager.Commit(); MemcachedFactory.TeammembersClient.Delete(managerId); MemcachedFactory.SolutionClient.Delete(managerId); package.Shadow.Save(); int orangeCount = 0; string[] pIds = playerString.Split(','); foreach (var pId in pIds) { int id = ConvertHelper.ConvertToInt(pId); var player = CacheFactory.PlayersdicCache.GetPlayer(id); if (player.CardLevel == (int)EnumPlayerCardLevel.Orange) { orangeCount++; } } ActivityExThread.Instance.TememberColect(managerId, 3, orangeCount); } else { transactionManager.Rollback(); return(ResponseHelper.Create <NBSolutionInfoResponse>(messCode)); } } } catch (Exception ex) { SystemlogMgr.Error("替换球员上场", ex); } KpiHandler.Instance.RebuildKpi(managerId, true); var response = SolutionAndTeammemberResponse(managerId); if (isChanagePlayer) { var pop = TaskHandler.Instance.SolutionChangePlayer(managerId); if (response.Data != null) { response.Data.PopMsg = pop; } } return(response); }
void BindData() { var accountData = Master.GetAccount(); if (accountData == null) { Master.ShowMessage("请先选择经理."); return; } var manager = NbManagerMgr.GetById(accountData.ManagerId, accountData.ZoneId); if (manager == null) { Master.ShowMessage("获取经理信息失败."); return; } ClearData(); lblCoin.Text = manager.Coin.ToString(); lblExp.Text = manager.EXP.ToString(); lblLevel.Text = manager.Level.ToString(); lblLogo.Text = manager.Logo.ToString(); lblName.Text = manager.Name; lblReiki.Text = manager.Reiki.ToString(); lblSophisticate.Text = manager.Sophisticate.ToString(); lblStatus.Text = CacheDataHelper.Instance.GetEnumDescription("EnumManagerStatus", manager.Status); lblSubstitute.Text = (manager.TeammemberMax - 11).ToString(); lblVipLevel.Text = manager.VipLevel.ToString(); var payAccount = PayUserMgr.GetById(accountData.Account, accountData.ZoneId); if (payAccount != null) { lblCash.Text = payAccount.TotalCash.ToString(); lblPoint.Text = string.Format("{0}+{1}(赠送)={2}", payAccount.Point, payAccount.Bonus, payAccount.TotalPoint); } var user = NbUserMgr.GetById(accountData.Account, accountData.ZoneId); if (user != null) { lblLastLoginTime.Text = user.LastLoginTime.ToString(AdminMgr.TimeFormat); lblRegisterTime.Text = user.RowTime.ToString(AdminMgr.TimeFormat); lblLoginday.Text = user.ContinuingLoginDay.ToString(); } var onlineEntity = OnlineInfoMgr.GetById(accountData.ManagerId, accountData.ZoneId); if (onlineEntity != null) { lblOnlineStatus.Text = onlineEntity.IsOnline ? "在线" : "不在线"; var total = onlineEntity.RealTotalMinutes; var day = total / 1440; var hour = (total % 1440) / 60; var minute = ((total % 1440) % 60); lblOnlineTotal.Text = string.Format("{0} 天 {1} 小时 {2} 分钟", day, hour, minute); lblOnlineCur.Text = onlineEntity.TodayMinutes + " 分钟"; } else { lblOnlineStatus.Text = "无记录"; } var solution = NbSolutionMgr.GetById(accountData.ManagerId, accountData.ZoneId); string playerString = ""; if (solution != null) { var formation = CacheFactory.FormationCache.GetFormation(solution.FormationId); lblSolution.Text = formation == null?solution.FormationId.ToString() : formation.Name; lblSolutionPlayer.Text = solution.PlayerString; lblSolutionSkill.Text = solution.SkillString; playerString = solution.PlayerString; } var managerExtra = NbManagerextraMgr.GetById(accountData.ManagerId, accountData.ZoneId); if (managerExtra != null) { ManagerUtil.CalCurrentStamina(managerExtra, manager.Level, manager.VipLevel); lblStamina.Text = managerExtra.Stamina.ToString(); } var teammembers = TeammemberMgr.GetByManager(accountData.ManagerId, accountData.Mod, accountData.ZoneId); if (teammembers != null) { foreach (var teammember in teammembers) { teammember.Name = AdminCache.Instance.GetPlayerName(teammember.PlayerId); teammember.IsMain = playerString.Contains(teammember.PlayerId.ToString()); } datagrid1.DataSource = teammembers; datagrid1.DataBind(); } var list = FriendinviteMgr.InviteManagerList(manager.Account, accountData.ZoneId); if (list != null) { var friendInviteString = ""; foreach (var item in list) { friendInviteString += item.Name + ","; } lblFriendInvite.Text = friendInviteString; } }