Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 6
0
        /// <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);
        }