static void AddManagerData(Guid managerId, int prizeExp, int prizeCoin, int prizeSophisticate, EnumCoinChargeSourceType coinSourceType, string coinOrderId) { NbManagerEntity homeManager = ManagerCore.Instance.GetManager(managerId); ManagerUtil.AddManagerData(homeManager, prizeExp, prizeCoin, prizeSophisticate, coinSourceType, coinOrderId); ManagerUtil.SaveManagerData(homeManager); ManagerUtil.SaveManagerAfter(homeManager, true); }
public MessageCode AddManagerData(Guid managerId, int prizeExp, int prizeCoin, int prizeSophisticate) { try { NbManagerEntity homeManager = ManagerCore.Instance.GetManager(managerId); ManagerUtil.AddManagerData(homeManager, prizeExp, prizeCoin, prizeSophisticate, EnumCoinChargeSourceType.AdminAdd, ""); ManagerUtil.SaveManagerData(homeManager); ManagerUtil.SaveManagerAfter(homeManager, true); return(MessageCode.Success); } catch (Exception ex) { SystemlogMgr.Error("AdminCore:AddManagerData", ex); return(MessageCode.Exception); } }
public NBManagerInfoResponse Levelup(Guid managerId) { var manager = ManagerCore.Instance.GetManager(managerId); var levelupExp = CacheFactory.ManagerDataCache.GetExp(manager.Level); if (levelupExp > 0) { levelupExp = levelupExp - manager.EXP + 1; ManagerUtil.AddManagerData(manager, levelupExp, 0, 0, EnumCoinChargeSourceType.None, ""); if (ManagerUtil.SaveManagerData(manager)) { ManagerUtil.SaveManagerAfter(manager); return(ManagerCore.Instance.GetManagerInfo(managerId, false)); } else { return(ResponseHelper.Create <NBManagerInfoResponse>(MessageCode.NbUpdateFail)); } } else { return(ResponseHelper.Create <NBManagerInfoResponse>(MessageCode.NbManagerLevelOver)); } }
/// <summary> /// 领取好友邀请奖励 /// </summary> /// <param name="account"></param> /// <param name="managerId"></param> /// <param name="inviteCount"></param> /// <returns></returns> public InvitePrizeResponse InvitePrize(string account, Guid managerId, int inviteCount) { InvitePrizeResponse response = new InvitePrizeResponse(); response.Data = new InvitePrize(); response.Data.ItemList = new List <ItemInfo>(); try { NbManagerEntity manager = null; var entity = FriendInvitePrizeList(account, managerId); if (entity.IsInviteAccomplish || entity.NextInviteCount > 0) { return(ResponseHelper.Create <InvitePrizeResponse>((int)MessageCode.ActiveNotPrize)); } var package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.FriendInvite); if (package == null) { return(ResponseHelper.Create <InvitePrizeResponse>((int)MessageCode.NbNoPackage)); } MessageCode messCode = MessageCode.NbParameterError; FriendinvitePrizerecordEntity record = new FriendinvitePrizerecordEntity(); record.Account = account; record.UpdateTime = DateTime.Now; record.PrizeType = 0; record.PrizeInfo = entity.PrizeId.ToString(); int coin = 0; foreach (var item in entity.ItemList) { switch (item.PrizeType) { case 1: coin = item.Count; record.PrizeString += "1," + item.Count + "|"; break; case 2: messCode = package.AddItems(item.ItemCode, item.Count, 1, item.IsBinding, false); if (messCode != MessageCode.Success) { return(ResponseHelper.Create <InvitePrizeResponse>((int)messCode)); } record.PrizeString += item.ItemCode + "," + item.Count + "|"; break; case 3: var itemcode = CacheFactory.LotteryCache.LotteryByLib(item.ItemCode); messCode = package.AddItems(itemcode, item.Count, 1, item.IsBinding, false); if (messCode != MessageCode.Success) { return(ResponseHelper.Create <InvitePrizeResponse>((int)messCode)); } record.PrizeString += itemcode + "," + item.Count + "|"; break; } response.Data.ItemList.Add(item); } record.PrizeString = record.PrizeString.Substring(0, record.PrizeString.Length - 1); using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); messCode = SaveInvitePrize(manager, record, package, transactionManager.TransactionObject, coin, account); if (messCode != MessageCode.Success) { transactionManager.Rollback(); return(ResponseHelper.Create <InvitePrizeResponse>((int)messCode)); } transactionManager.Commit(); if (manager != null) { ManagerUtil.SaveManagerAfter(manager); } response.Data.BindPoint = PayCore.Instance.GetBindPoint(account); } } catch (Exception ex) { SystemlogMgr.Error("领取好友邀请奖励", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
public ExchangeResponse Exchange(Guid managerId, string exchangeId, string pf) { if (string.IsNullOrEmpty(exchangeId)) { return(ResponseHelper.Create <ExchangeResponse>(MessageCode.ExchangeCodeNotExists)); } var manager = ManagerCore.Instance.GetManager(managerId); if (manager == null) { return(ResponseHelper.Create <ExchangeResponse>(MessageCode.NbParameterError)); } var packCode = CacheFactory.AppsettingCache.GetAppSetting(EnumAppsetting.H5_360GoodsBag); var arr = packCode.Split('|'); if (arr.Count() >= 2) { if (exchangeId == arr[0]) { //类型1为360礼包 return(Send360GoodsBay(manager, arr[1], arr[0], 1)); } } var packCode2 = CacheFactory.AppsettingCache.GetAppSetting(EnumAppsetting.H5_888kkk); var arr2 = packCode2.Split('|'); if (arr2.Count() >= 2) { if (exchangeId == arr2[0]) { //类型2为888kkk礼包 return(Send360GoodsBay(manager, arr2[1], arr2[0], 2)); } } ExchangeInfoEntity exchangeInfo = null; exchangeInfo = ExchangeInfoMgr.GetById(exchangeId); if (exchangeInfo == null) { return(ResponseHelper.Create <ExchangeResponse>(MessageCode.ExchangeCodeNotExists)); } if (exchangeInfo.Status == 1) { return(ResponseHelper.Create <ExchangeResponse>(MessageCode.ExchangeIsUsed)); } if (exchangeInfo.PlatformCode != "h5_a8") { if (pf != exchangeInfo.PlatformCode) { return(ResponseHelper.Create <ExchangeResponse>(MessageCode.ExchangeCodeNotExists)); } } int returnCode = -2; var package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.ExchangeCodePrize); int effectCoin = 0; int curValue = 0; int effectPoint = 0; int bindPoint = 0; ExchangeEntity exchangeEntity = new ExchangeEntity(); exchangeEntity.PrizeList = new List <ExchangePrizeEntity>(); var messagecode = MallCore.Instance.UseNewPlayerPack(managerId, exchangeInfo.PackId, package, EnumCoinChargeSourceType.Exchange, ref manager, ref effectCoin, ref curValue, ref effectPoint, ref bindPoint, exchangeEntity); if (messagecode != MessageCode.Success) { return(ResponseHelper.Create <ExchangeResponse>(messagecode)); } try { using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetConnectionString(EnumDbType.Support))) { transactionManager.BeginTransaction(); ExchangeInfoMgr.Save(exchangeInfo.Idx, ShareUtil.PlatformCode, manager.Account, manager.Idx, ShareUtil.ZoneId, exchangeInfo.PackId, exchangeInfo.RowVersion, (int)MessageCode.ExchangeBatchLimit, ref returnCode, transactionManager.TransactionObject); if (returnCode == (int)MessageCode.Success) { if (effectCoin > 0) { ManagerUtil.SaveManagerData(manager, null); ManagerUtil.SaveManagerAfter(manager); } if (package.Save()) { package.Shadow.Save(); } if (effectPoint > 0) { messagecode = PayCore.Instance.AddBonus(manager.Account, effectPoint, EnumChargeSourceType.ExchangePrize, exchangeId); } } if (messagecode == MessageCode.Success) { transactionManager.Commit(); } else { transactionManager.Rollback(); } } if (returnCode != 0) { return(ResponseHelper.Create <ExchangeResponse>(returnCode)); } exchangeEntity.ExchangeType = exchangeInfo.ExchangeType; var response = ResponseHelper.CreateSuccess <ExchangeResponse>(); response.Data = new ExchangeEntity(); response.Data.PrizeList = new List <ExchangePrizeEntity>(); response.Data.PrizeList = exchangeEntity.PrizeList; response.Code = 0; return(response); } catch (Exception ex) { SystemlogMgr.Error("SaveItemException", ex); return(ResponseHelper.Create <ExchangeResponse>(returnCode)); } }
/// <summary> /// 360礼包 /// </summary> /// <param name="manager"></param> /// <param name="packStr"></param> /// <param name="exchangeId"></param> /// <returns></returns> private ExchangeResponse Send360GoodsBay(NbManagerEntity manager, string packStr, string exchangeId, int type) { var response = new ExchangeResponse(); var entity = NbManagercommonpackageMgr.Select(manager.Idx);//公用字段1 为360礼包 字段2为888kkk礼包 if (entity != null) { switch (type) { case 1: var i = entity.Common1; var common1 = ConvertHelper.ConvertToInt(i); if (common1 >= 1) { response.Code = (int)MessageCode.NbPrizeRepeat; return(response); } else { entity.Common1 = "1"; } break; case 2: var i2 = entity.Common2; var common2 = ConvertHelper.ConvertToInt(i2); if (common2 >= 1) { response.Code = (int)MessageCode.NbPrizeRepeat; return(response); } else { entity.Common2 = "1"; } break; } } var packId = ConvertHelper.ConvertToInt(packStr); var package = ItemCore.Instance.GetPackage(manager.Idx, EnumTransactionType.ExchangeCodePrize); int effectCoin = 0; int curValue = 0; int effectPoint = 0; int bindPoint = 0; ExchangeEntity exchangeEntity = new ExchangeEntity(); exchangeEntity.PrizeList = new List <ExchangePrizeEntity>(); response.Code = (int)MallCore.Instance.UseNewPlayerPack(manager.Idx, packId, package, EnumCoinChargeSourceType.Exchange, ref manager, ref effectCoin, ref curValue, ref effectPoint, ref bindPoint, exchangeEntity); if (response.Code != (int)MessageCode.Success) { return(response); } try { using (var transactionManager = new TransactionManager(Dal.ConnectionFactory.Instance.GetDefault())) { transactionManager.BeginTransaction(); response.Code = (int)MessageCode.Exception; if (entity != null) { if (NbManagercommonpackageMgr.Update(entity, transactionManager.TransactionObject)) { response.Code = (int)MessageCode.Success; } } if (response.Code == (int)MessageCode.Success) { if (effectCoin > 0) { ManagerUtil.SaveManagerData(manager, null, transactionManager.TransactionObject); ManagerUtil.SaveManagerAfter(manager); } if (package.Save(transactionManager.TransactionObject)) { package.Shadow.Save(); } else { response.Code = (int)MessageCode.ItemNoShadow; } if (effectPoint > 0) { response.Code = (int)PayCore.Instance.AddBonus(manager.Account, effectPoint, EnumChargeSourceType.ExchangePrize, exchangeId, transactionManager.TransactionObject); } } if (response.Code == (int)MessageCode.Success) { transactionManager.Commit(); } else { transactionManager.Rollback(); } } if (response.Code != 0) { return(ResponseHelper.Create <ExchangeResponse>(response.Code)); } exchangeEntity.ExchangeType = 1; response.Data = new ExchangeEntity(); response.Data.PrizeList = new List <ExchangePrizeEntity>(); response.Data.PrizeList = exchangeEntity.PrizeList; response.Code = 0; return(response); } catch (Exception ex) { SystemlogMgr.Error("SaveItemException", ex); return(ResponseHelper.Create <ExchangeResponse>(MessageCode.Exception)); } return(response); }