Exemple #1
0
        void BindData()
        {
            var accountData = Master.GetAccount();

            if (accountData == null)
            {
                Master.ShowMessage("请先选择经理.");
                return;
            }

            ClearData();
            var manager = NbManagerMgr.GetById(accountData.ManagerId, accountData.ZoneId);

            if (manager == null)
            {
                Master.ShowMessage("获取经理信息失败.");
                return;
            }
            lblPoint.Text = manager.Coin.ToString();

            int chargeCoin  = 0;
            int consumeCoin = 0;

            ShadowMgr.CoinStat(accountData.ManagerId, ref chargeCoin, ref consumeCoin, accountData.ZoneId);
            lblCharge.Text  = chargeCoin.ToString();
            lblConsume.Text = consumeCoin.ToString();
            lblPoint2.Text  = string.Format("{0}", chargeCoin - consumeCoin);
        }
Exemple #2
0
        /// <summary>
        /// a8用户数据采集
        /// </summary>
        /// <param name="dataType"></param>
        /// <param name="openId"></param>
        public static void UserAction(string dataType, string openId = "", string session = "", string server = "",
                                      NbManagerEntity managerEntity  = null)
        {
            //"{dataType,sessionId,gameNum,channelAlias,channelId,deviceId,model,release,uid,uname,serverId,serverName,roleId,roleName,roleLevel,ext,sdkVersion}";
            NbManagerEntity manager = null;

            if (managerEntity == null)
            {
                var list = NbManagerMgr.GetByAccount(openId, ShareUtil.ZoneName);
                if (list != null && list.Count > 0)
                {
                    manager = list[0];
                }
            }
            else
            {
                manager = managerEntity;
            }
            var postDataStr = "";

            if (manager == null)
            {
                postDataStr = "dataType=" + dataType;
            }
            else
            {
                var ip = "";
                try
                {
                    ip = UAHelper.GetRealIP();
                }
                catch (Exception)
                {
                }
                var ext          = "";
                var channelAlias = "";
                var sessionId1   = "";
                var entity       = WebServerHandler.GetStartgameEntity(openId, ShareUtil.PlatformCode,
                                                                       ShareUtil.PlatformZoneName);
                if (entity != null)
                {
                    var serverId = entity.ServerId;
                    ext          = entity.State;
                    channelAlias = entity.Pf;
                    sessionId1   = entity.SessionId;
                    //release=1   暂留,没有实际意义
                    postDataStr = "dataType=" + dataType + "&sessionId=" +
                                  sessionId1
                                  + "&gameNum=" + (int)A8csdkEnum.csdkId + "&channelAlias=" + channelAlias +
                                  "&channelId=" + entity.JsNeed + "&deviceId=" + ip + "&model=" + "&release=1" +
                                  "&channelAlias=" + channelAlias + "&subChannel=" + "&serverId=" + serverId +
                                  "&uid=" + openId + "&uname=" + "&serverId=" + serverId + "&serverName=" +
                                  serverId + "&roleId=" + openId +
                                  "&roleName=" + manager.Name + "&roleLevel=" + manager.Level + "&ext=" + ext +
                                  "&sdkVersion=";
                }
            }
            var url       = UAFactory.Instance.GetRedirectURL(ShareUtil.PlatformCode, "useraction");
            var retString = UAHelper.HttpPost(url, postDataStr);
        }
Exemple #3
0
        public static MessageCode CheckUserName(string userName, string logo)
        {
            ////检查是否有屏蔽字
            //if (FilterHelper.Instance.ScanContent(userName))
            //{
            //    return MessageCode.RegisterNameContainBadWord;
            //}
            if (string.IsNullOrEmpty(userName))
            {
                return(MessageCode.RegisterNameIsEmpty);
            }
            if (string.IsNullOrEmpty(logo))
            {
                logo = "1";
            }
            logo = logo.ToLower();
            if (!logo.Contains("http"))
            {
                string chinese = @"[\u4E00-\u9FA5]";
                string letter  = @"[a-zA-Z]";
                string number  = @"^\d+$";
                //bool result = false;
                int    count = 0;
                char[] ch    = userName.ToCharArray();
                foreach (char c in ch)
                {
                    if (Regex.IsMatch(c.ToString(), chinese))
                    {
                        count = count + 2;
                    }
                    else if (Regex.IsMatch(c.ToString(), letter) || Regex.IsMatch(c.ToString(), number))
                    {
                        count++;
                    }
                    else
                    {
                        return(MessageCode.RegisterNameHasValidWord);
                    }
                }
                if (count < 4 || count > 12)
                {
                    return(MessageCode.RegisterNameLengthRange);
                }
            }
            int exists = -1;

            NbManagerMgr.NameExists(userName, ref exists);
            if (exists == 0)
            {
                return(MessageCode.Success);
            }
            else
            {
                return(MessageCode.RegisterNameRepeat);
            }
        }
Exemple #4
0
 public CrossladderManagerResponse GetLadderManager(string siteId, Guid managerId)
 {
     try
     {
         var ladderManager = CrossladderManagerMgr.GetById(managerId);
         if (ladderManager == null)
         {
             if (!ManagerUtil.CheckFunction(siteId, managerId, EnumOpenFunction.CrossLadder))
             {
                 return(ResponseHelper.Create <CrossladderManagerResponse>(MessageCode.NbFunctionNotOpen));
             }
             var nbManager = NbManagerMgr.GetById(managerId, siteId);
             if (nbManager == null)
             {
                 return(ResponseHelper.Create <CrossladderManagerResponse>(MessageCode.MissManager));
             }
             int domainId = 0;
             int honor    = 0;
             CrossladderManagerMgr.GetOldHonor(managerId, ref honor);
             CrossSiteCache.Instance().TryGetDomainId(siteId, out domainId);
             ladderManager                 = new CrossladderManagerEntity();
             ladderManager.DomainId        = domainId;
             ladderManager.SiteId          = siteId;
             ladderManager.SiteName        = CacheFactory.FunctionAppCache.GetCrossZoneName(siteId);
             ladderManager.ManagerId       = managerId;
             ladderManager.Name            = nbManager.Name;
             ladderManager.SiteId          = siteId;
             ladderManager.Logo            = nbManager.Logo;
             ladderManager.Score           = _ladderRegisterScore;
             ladderManager.LastExchageTime = ShareUtil.BaseTime;
             ladderManager.RowTime         = DateTime.Now;
             ladderManager.UpdateTime      = DateTime.Now;
             ladderManager.Honor           = honor;
             ladderManager.MaxScore        = _ladderRegisterScore;
             ladderManager.DailyMaxScore   = _ladderRegisterScore;
             ladderManager.Stamina         = 50;
             CrossladderManagerMgr.Insert(ladderManager);
         }
         if (ladderManager.Stamina < 0)
         {
             ladderManager.Stamina = 0;
         }
         if (ladderManager.StaminaBuy < 0)
         {
             ladderManager.StaminaBuy = 0;
         }
         var response = ResponseHelper.CreateSuccess <CrossladderManagerResponse>();
         response.Data = ladderManager;
         return(response);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("GetCrossLadderManager", ex);
         return(ResponseHelper.Create <CrossladderManagerResponse>(MessageCode.Exception));
     }
 }
Exemple #5
0
        public bool IsTxVip(Guid managerId)
        {
            var manager = NbManagerMgr.GetById(managerId);

            if (manager == null)
            {
                return(false);
            }
            return(IsTxVip(manager));
        }
Exemple #6
0
        /// <summary>
        /// 获取分享信息
        /// </summary>
        /// <param name="managerId"></param>
        /// <param name="shareType">分享类型   4=关注</param>
        /// <returns></returns>
        public ShareGetResponse GetShareInfo(Guid managerId, int shareType)
        {
            var response = new ShareGetResponse();

            response.Data = new ShareGet();
            try
            {
                var manager = NbManagerMgr.GetById(managerId);
                if (manager == null)
                {
                    return(ResponseHelper.Create <ShareGetResponse>(MessageCode.MissManager));
                }
                var config = CacheFactory.ManagerDataCache.GetShare(shareType);
                if (config == null || config.Count == 0)
                {
                    return(ResponseHelper.Create <ShareGetResponse>(MessageCode.ActivityNoConfigPrize));
                }
                var record = ShareManagerMgr.GetByManagerId(managerId, shareType);
                if (record != null)
                {
                    DateTime date = DateTime.Now;
                    if (record.UpdateTime.Date != date.Date)
                    {
                        var code = RefreshRecord(record, config[0]);
                        if (code != MessageCode.Success)
                        {
                            return(ResponseHelper.Create <ShareGetResponse>(code));
                        }
                    }
                    if (shareType == 1)//第一种特殊处理
                    {
                        if (record.ShareNumber > 0)
                        {
                            int seconds = 3600 - (date - record.UpdateTime).Seconds;
                            response.Data.NextShareEnd = seconds < 0 ? 0 : seconds;
                        }
                    }
                    response.Data.IsFirstShare = false;
                    response.Data.ShareNumber  = record.ShareNumber;
                    response.Data.IsHaveShare  = config[0].MaxShareNumber > record.ShareNumber;
                }
                else
                {
                    response.Data.IsHaveShare  = true;
                    response.Data.IsFirstShare = true;
                    response.Data.ShareNumber  = 0;
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("获取分享信息", ex);
                response.Code = (int)MessageCode.NbParameterError;
            }
            return(response);
        }
Exemple #7
0
        private void UserActionNew(string dataType, string sessionId, string channelAlias, string openId, string jsNeed, string serverId, string state)
        {
            //"{dataType,sessionId,gameNum,channelAlias,channelId,deviceId,model,release,uid,uname,serverId,serverName,roleId,roleName,roleLevel,ext,sdkVersion}";
            NbManagerEntity manager = null;
            var             name    = "";
            var             level   = 1;

            try
            {
                var list = NbManagerMgr.GetByAccount(openId, ShareUtil.ZoneName);
                if (list != null && list.Count > 0)
                {
                    manager = list[0];
                    name    = manager.Name;
                    level   = manager.Level;
                }
            }
            catch (Exception ex)
            {
            }

            var postDataStr = "";

            if (manager == null)
            {
                postDataStr = "dataType=" + dataType;
            }
            else
            {
                var ip = "";
                try
                {
                    ip = UAHelper.GetRealIP();
                }
                catch (Exception)
                {
                }
                var oId = UAHelper.StrToUtf8(openId);


                //release=1   暂留,没有实际意义
                postDataStr = "dataType=" + dataType + "&sessionId=" +
                              sessionId
                              + "&gameNum=" + (int)A8csdkEnum.csdkId + "&channelAlias=" + channelAlias +
                              "&channelId=" + jsNeed + "&deviceId=" + ip + "&model=" + "&release=1" +
                              "&channelAlias=" + channelAlias + "&subChannel=" + "&serverId=" + serverId +
                              "&uid=" + oId + "&uname=" + "&serverId=" + serverId + "&serverName=" +
                              serverId + "&roleId=" + openId +
                              "&roleName=" + name + "&roleLevel=" + level + "&ext=" + state +
                              "&sdkVersion=";     //第一个枚举参数不变     第二个枚举参数作废不更改
            }
            var url       = UAFactory.Instance.GetRedirectURL(ShareUtil.PlatformCode, "useraction");
            var retString = UAHelper.HttpPost(url, postDataStr);
        }
Exemple #8
0
 public List <NbManagerEntity> GetManagerList(string account)
 {
     try
     {
         return(NbManagerMgr.GetByAccount(account));
     }
     catch (Exception ex)
     {
         LogHelper.Insert(ex);
         return(null);
     }
 }
        //private bool CopyData()
        //{
        //    int returnValue = 0 ;
        //    string returnMsg = string.Empty;


        //    NbManagerMgr.TransferZoneByAccount("", _accountDataOld.Account, _accountDataOld.Name, _accountDataOld.ManagerId.ToString(), _accountDataOld.Mod.ToString(), _accountDataNew.Account,
        //        _accountDataNew.Name, _accountDataNew.ManagerId.ToString(), _accountDataNew.Mod.ToString(),  ref returnValue,  ref returnMsg);



        //    return true;
        //}

        private bool GetManagerByName(string name, string zoneId, bool oldOrNew)
        {
            if (!string.IsNullOrEmpty(name))
            {
                var manager = NbManagerMgr.GetByName(name, zoneId);
                if (manager != null)
                {
                    SetAccount(manager, zoneId, oldOrNew);
                    return(true);
                }
            }
            return(false);
        }
        private bool GetManagerByAccount(string zoneId)
        {
            var account = txtAccount.Text.Trim();

            if (!string.IsNullOrEmpty(account))
            {
                var managers = NbManagerMgr.GetByAccount(account, zoneId);
                if (managers != null && managers.Count > 0)
                {
                    SetAccount(managers[0], zoneId);
                    return(true);
                }
            }
            return(false);
        }
        private bool GetManagerByName(string zoneId)
        {
            var name = txtManagerName.Text.Trim();

            if (!string.IsNullOrEmpty(name))
            {
                var manager = NbManagerMgr.GetByName(name, zoneId);
                if (manager != null)
                {
                    SetAccount(manager, zoneId);
                    return(true);
                }
            }
            return(false);
        }
Exemple #12
0
 /// <summary>
 /// 是否开启了拍卖行
 /// </summary>
 /// <param name="managerId"></param>
 /// <param name="zoneName"></param>
 /// <param name="manager"></param>
 /// <returns></returns>
 public bool IsOpen(Guid managerId, string zoneName, NbManagerEntity manager = null)
 {
     if (manager == null)
     {
         manager = NbManagerMgr.GetById(managerId, zoneName);
     }
     if (manager == null)
     {
         return(false);
     }
     if (manager.Level < 30 && manager.VipLevel < 3)
     {
         return(false);
     }
     return(true);
 }
        private bool GetManagerByIdx(string zoneId)
        {
            var  idx       = txtManagerId.Text.Trim();
            Guid managerId = Guid.Empty;

            Guid.TryParse(idx, out managerId);
            if (managerId != Guid.Empty)
            {
                var manager = NbManagerMgr.GetById(managerId, zoneId);
                if (manager != null)
                {
                    SetAccount(manager, zoneId);
                    return(true);
                }
            }
            return(false);
        }
        public CrossMallDirectFrame(string siteId, Guid managerId, EnumConsumeSourceType consumeSourceType, int usedCount = 0)
        {
            _siteId = siteId;
            var manager = NbManagerMgr.GetById(managerId, siteId);

            if (manager != null)
            {
                _managerId = managerId;
                _account   = manager.Account;
                _configMalldirectEntity = CacheFactory.MallCache.GetDirectEntity(consumeSourceType, usedCount);
                if (_configMalldirectEntity == null)
                {
                    string msg = "can't find mall direct config,consumeSourceType:" + consumeSourceType + ",usedCount:" +
                                 usedCount;
                    LogHelper.Insert(msg, LogType.Info);
                    throw new Exception(msg);
                }
            }
        }
Exemple #15
0
        public static long GetWorthValue(Guid managerId, WorthSource worthSrc, EnumWorthType worthType)
        {
            long val = -1;

            try
            {
                if (null == worthSrc)
                {
                    worthSrc = new WorthSource();
                }
                if (null == worthSrc.Manager)
                {
                    worthSrc.Manager = NbManagerMgr.GetById(managerId);
                }
                if (null == worthSrc.Manager)
                {
                    return(val);
                }
                switch (worthType)
                {
                case EnumWorthType.Gold:
                    if (null == worthSrc.Account)
                    {
                        worthSrc.Account = GetPayAccount(worthSrc.Manager.Account);
                    }
                    return(worthSrc.Account.TotalPoint);

                case EnumWorthType.Coin:
                    return(worthSrc.Manager.Coin);

                case EnumWorthType.ManagerLevel:
                    return(worthSrc.Manager.Level);

                case EnumWorthType.VipLevel:
                    return(worthSrc.Manager.VipLevel);
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("FrameConvert:GetWorthValue", ex);
            }
            return(val);
        }
Exemple #16
0
        static RootResponse <DTOAssetInfo> SaveReward(NbManagerEntity manager, string orderId, int coin, int point, int assetType, int tranType, string tranMap)
        {
            var msgCode    = MessageCode.Success;
            int totalCoin  = -1;
            int totalPoint = -1;

            using (var tranMgr = new TransactionManager(Games.NBall.Dal.ConnectionFactory.Instance.GetConnectionString(EnumDbType.Main)))
            {
                tranMgr.BeginTransaction();
                do
                {
                    if (coin > 0)
                    {
                        msgCode = ManagerCore.Instance.AddCoinV2(out totalCoin, manager, coin, (int)EnumCoinChargeSourceType.MatchReward, orderId, tranMgr.TransactionObject);
                        if (msgCode != MessageCode.Success)
                        {
                            break;
                        }
                    }
                    if (point > 0)
                    {
                        msgCode = PayCore.Instance.AddBonusV2(out totalPoint, manager.Account, point, EnumChargeSourceType.MatchReward, orderId, tranMgr.TransactionObject);
                        if (msgCode != MessageCode.Success)
                        {
                            break;
                        }
                    }
                    int errorCode = 0;
                    NbManagerMgr.AssetRecord(false, manager.Idx, assetType, tranType, tranMap, ref errorCode, tranMgr.TransactionObject);
                    msgCode = (MessageCode)errorCode;
                }while (false);
                if (msgCode != MessageCode.Success)
                {
                    tranMgr.Rollback();
                    return(ResponseHelper.CreateRoot <DTOAssetInfo>(msgCode));
                }
                tranMgr.Commit();
            }
            ManagerCore.Instance.DeleteCache(manager.Idx);
            var data = new DTOAssetInfo(totalCoin, totalPoint);

            return(ResponseHelper.CreateRoot <DTOAssetInfo>(data));
        }
Exemple #17
0
        public static NbManagerEntity GetManager(Guid managerId, bool containKpi = false, bool containTourLeague = false, string siteId = "")
        {
            try
            {
                var manager = MemcachedFactory.ManagerClient.Get <NbManagerEntity>(managerId);
                if (manager == null)
                {
                    manager = NbManagerMgr.GetById(managerId, siteId);
                    if (manager != null)
                    {
                        if (containTourLeague)
                        {
                            FillTourLeague(manager);
                        }
                        //if (!string.IsNullOrEmpty(siteId))
                        //{
                        //manager.Name = ShareUtil.GetCrossManagerNameByZoneId(siteId, manager.Name);
                        //}
                        MemcachedFactory.ManagerClient.Set(manager.Idx, manager);
                    }
                }
                if (manager != null)
                {
                    if (containKpi)
                    {
                        manager.Kpi = GetManagerKpi(managerId, siteId);
                    }

                    if (containTourLeague && manager.TourLeague <= 0)
                    {
                        FillTourLeague(manager);
                        MemcachedFactory.ManagerClient.Set(manager.Idx, manager);
                    }
                }
                return(manager);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("GetManager", "get manager data fail,mid:" + managerId, ex.StackTrace);
                throw ex;
            }
        }
Exemple #18
0
 public MessageCode CheckActive(string account)
 {
     try
     {
         var manager = NbManagerMgr.GetByAccount(account);
         if (manager == null || manager.Count <= 0)
         {
             return(MessageCode.MissManager);
         }
         else
         {
             return(MessageCode.Success);
         }
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("Admin CheckActive", ex);
         return(MessageCode.Exception);
     }
 }
Exemple #19
0
 public static Guid GetManagerId(string account)
 {
     try
     {
         var list = NbManagerMgr.GetByAccount(account);
         if (list != null)
         {
             return(list[0].Idx);
         }
         else
         {
             return(Guid.Empty);
         }
     }
     catch (Exception ex)
     {
         LogHelper.Insert(ex);
         return(Guid.Empty);
     }
 }
Exemple #20
0
        public static WorthSource GetWorthSource(Guid managerId, bool managerFlag, bool accountFlag, string siteId = "")
        {
            var obj = new WorthSource();

            try
            {
                if (managerFlag || accountFlag)
                {
                    obj.Manager = NbManagerMgr.GetById(managerId, siteId);
                }
                if (accountFlag)
                {
                    obj.Account = GetPayAccount(obj.Manager.Account, siteId);
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("FrameConvert:GetWorthSource", ex);
            }
            return(obj);
        }
Exemple #21
0
        public void Testt10()
        {
            //var r = ScoutingCore.Instance.ScoutingLottery(new Guid("212DCEF2-3AAF-454D-A632-A62600E5BDFA"),2,false,10 );

            //var rr = r;
            //var rrr = rr;

            var list = NbManagerMgr.GetAll();
            var r    = 0;

            foreach (var ent in list)
            {
                var str = "";
                str = ent.Account;
                if (!string.IsNullOrEmpty(ent.Account) && !str.Contains("Bot"))
                {
                    ItemCore.Instance.GMAddItem("", ent.Idx, 310166, 20, 1, false);
                }
            }
            var rr  = r;
            var rrr = rr;
        }
Exemple #22
0
 protected void btnUpLevel_Click(object sender, EventArgs e)
 {
     try
     {
         if (CheckManager())
         {
             var level = ConvertHelper.ConvertToInt(txtLevel.Text);
             if (level < 1)
             {
                 ShowMessage("等级不能小于1");
                 return;
             }
             if (level > 80)
             {
                 ShowMessage("等级不能超过80");
                 return;
             }
             var exp     = ConvertHelper.ConvertToInt(txtExp.Text);
             var manager = NbManagerMgr.GetById(_account.ManagerId, _account.ZoneId);
             manager.Level = level;
             manager.EXP   = exp;
             if (NbManagerMgr.Update(manager, null, _account.ZoneId))
             {
                 SaveAdminLog(EnumAdminOperationType.UpLevel, string.Format("Level:{0}", level));
                 ShowMessage("修改等级成功");
             }
             else
             {
                 ShowMessage("修改等级失败");
             }
         }
     }
     catch (Exception ex)
     {
         LogHelper.Insert(ex);
         ShowMessage(ex.Message);
     }
 }
Exemple #23
0
        /// <summary>
        /// 批量获取玩家信息
        /// </summary>
        /// <param name="data">json</param>
        /// <returns></returns>
        public List <NbManagerEntity> IsRegistByNameList(string data)
        {
            data = "{\"data\":" + data + "}";
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            var listData = new OtherTweJsonEntity();

            try
            {
                listData = serializer.Deserialize <OtherTweJsonEntity>(data);
            }
            catch (Exception e)
            {
                SystemlogMgr.Info("IsRegistByNameList", e.Message + "|json解析错误");
                return(null);
            }
            if (listData == null || listData.Data == null || listData.Data.Count == 0)
            {
                SystemlogMgr.Info("IsRegistByNameList", "参数为空");

                return(null);
            }
            SystemlogMgr.Info("IsRegistByNameList", listData.Data.Count + "|计数");

            var list = new List <NbManagerEntity>();

            foreach (var entity in listData.Data)
            {
                var manager = new NbManagerEntity();
                manager = NbManagerMgr.GetByName(entity.Name);
                if (manager == null || manager.Name != entity.Name)
                {
                    SystemlogMgr.Info("IsRegistByNameList", entity.Name + "不存在" + manager.Name);
                    return(null);
                }
                list.Add(manager);
            }
            return(list);
        }
        /// <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);
        }
Exemple #25
0
        /// <summary>
        /// 获取我的拍卖列表
        /// </summary>
        /// <param name="managerId"></param>
        /// <param name="zoneName"></param>
        /// <returns></returns>
        public AuctionItemResponse GetMyAuctionList(Guid managerId, string zoneName)
        {
            var response = new AuctionItemResponse();

            response.Data = new AuctionItemEntity();
            try
            {
                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);
                response.Data.MyTransferList     = GetMyTransfer(managerId);
                response.Data.MaxTransferNumber  = gambleCountMax;
                response.Data.HaveTransferNumber = number;
                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);
        }
Exemple #26
0
        public static bool SaveManagerData(NbManagerEntity manager, NbManagerextraEntity extra, bool openTask = true,
                                           DbTransaction transaction = null, string zoneId = "")
        {
            try
            {
                var functionList = manager.FunctionList;
                if (manager.IsLevelup)
                {
                    var function = CacheFactory.ManagerDataCache.GetFunctionList(manager.Level);
                    if (function != null)
                    {
                        if (function.FunctionId > 0)
                        {
                            manager.AddOpenFunc(function.FunctionId);
                        }
                        functionList = function.FunctionList;
                        if (extra != null)
                        {
                            extra.FunctionList = functionList;
                        }
                    }
                }
                int returnCode        = -2;
                var levelGiftExpired  = ShareUtil.BaseTime;
                var levelGiftExpired2 = ShareUtil.BaseTime;
                var levelGiftExpired3 = ShareUtil.BaseTime;
                int step = 0;
                if (manager.IsLevelup)
                {
                    step = CacheFactory.ManagerDataCache.GetLevelgiftStep(manager.Level);
                    if (step > 0)
                    {
                        manager.OpenLevelGift = true;
                        switch (step)
                        {
                        case 1:
                            levelGiftExpired = DateTime.Now.AddHours(72);
                            break;

                        case 2:
                            levelGiftExpired2 = DateTime.Now.AddHours(72);
                            break;

                        case 3:
                            levelGiftExpired3 = DateTime.Now.AddHours(72);
                            break;
                        }
                        if (extra != null)
                        {
                            extra.LevelGiftExpired  = levelGiftExpired;
                            extra.LevelGiftExpired2 = levelGiftExpired2;
                            extra.LevelGiftExpired3 = levelGiftExpired3;
                            extra.LevelGiftStep     = step;
                        }
                    }
                }
                NbManagerMgr.Save(manager.Idx, manager.Level, manager.EXP, manager.Sophisticate, manager.Score, manager.Coin,
                                  manager.Reiki, manager.TeammemberMax, manager.TrainSeatMax, manager.VipLevel,
                                  functionList, levelGiftExpired, levelGiftExpired2, levelGiftExpired3, step, manager.RowVersion, ref returnCode, transaction, zoneId);
                if (returnCode != 0)
                {
                    return(false);
                }
                manager.FunctionList = functionList;

                try
                {
                    if (manager.IsLevelup)
                    {
                        var code = SkillCardRules.SetSkillMapByManagerLevel(manager, transaction);
                        if (code != MessageCode.Success)
                        {
                            return(false);
                        }

                        var addSkillPoint = CacheFactory.ManagerDataCache.GetAddSkillPointByLevel(manager.Level);
                        if (extra != null)
                        {
                            extra.SkillPoint += addSkillPoint;
                        }
                        else
                        {
                            if (!NbManagerextraMgr.AddSkillPoint(manager.Idx, addSkillPoint, transaction))
                            {
                                return(false);
                            }
                        }

                        CalCurrentStamina(extra, manager.Level, manager.VipLevel);
                        if (extra == null)
                        {
                            extra = ManagerCore.Instance.GetManagerExtra(manager.Idx);
                            if (extra.Stamina < extra.StaminaMax)
                            {
                                extra.Stamina = extra.StaminaMax;
                                // extra.Stamina += ManagerLevelupAddStamina;
                                //if (extra.Stamina > extra.StaminaMax)
                                //    extra.Stamina = extra.StaminaMax;
                                extra.ResumeStaminaTime = DateTime.Now;
                                NbManagerextraMgr.Update(extra, transaction);
                            }
                        }
                        else
                        {
                            if (extra.Stamina < extra.StaminaMax)
                            {
                                extra.Stamina           = extra.StaminaMax;
                                extra.ResumeStaminaTime = DateTime.Now;
                            }
                        }

                        //if (TaskCore.Instance.CheckOpenDailyTask(manager.Level))
                        //{
                        //    var daily = TaskDailyrecordMgr.GetById(manager.Idx, zoneId);
                        //    if (daily == null)
                        //    {
                        //        var entity = TaskCore.Instance.CreateDailyTask(manager.Idx);
                        //        if (!TaskDailyrecordMgr.Insert(entity, transaction, zoneId))
                        //            return false;
                        //    }
                        //}
                        if (openTask)
                        {
                            List <TaskRecordEntity> newTasks = new List <TaskRecordEntity>();
                            TaskCore.Instance.GetLevelOpenTasks(manager.Idx, manager.Level, ref newTasks, zoneId);
                            if (newTasks.Count > 0)
                            {
                                foreach (var entity in newTasks)
                                {
                                    TaskCore.Instance.HandleOpenTaskStatus(entity, zoneId);
                                    if (!TaskRecordMgr.Add(entity, transaction, zoneId))
                                    {
                                        return(false);
                                    }
                                }
                                manager.HasOpenTask = true;
                            }
                        }
                        //如果等级为15级 向竞技场注册用户
                        //获取竞技场等级限制
                        //if (manager.Level == level.Values)
                        //{

                        //}
                    }
                }
                catch (Exception ex)
                {
                    SystemlogMgr.ErrorByZone("SaveManagerData Task pending", ex, zoneId);
                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                SystemlogMgr.ErrorByZone("SaveManagerData", ex, zoneId);
                return(false);
            }
            finally
            {
                ManagerCore.Instance.DeleteCache(manager.Idx);
            }
        }
Exemple #27
0
        protected void btnSend_Click(object sender, EventArgs e)
        {
            try
            {
                var zoneId = ZoneId;
                if (string.IsNullOrEmpty(zoneId))
                {
                    ShowMessage("请选择区");
                    return;
                }
                var users = txtUserList.Text;
                if (string.IsNullOrEmpty(users))
                {
                    ShowMessage("请选择用户");
                    return;
                }
                var title = txtMailTitle.Text;
                if (string.IsNullOrEmpty(title))
                {
                    ShowMessage("请输入标题");
                    return;
                }
                var content = txtMailContent.Text;
                if (string.IsNullOrEmpty(content))
                {
                    ShowMessage("请输入内容");
                    return;
                }
                List <NbManagerEntity> managers = new List <NbManagerEntity>();
                var ss = users.Split(',');
                foreach (var s in ss)
                {
                    var manager = NbManagerMgr.GetByAccount(s, zoneId);
                    if (manager == null || manager.Count < 1)
                    {
                        ShowMessage("未找到对应经理,账号:" + s);
                        return;
                    }
                    managers.Add(manager[0]);
                }
                var mailType    = ConvertHelper.ConvertToInt(dr_type.SelectedValue);
                var attachments = GetAttachments();
                if (mailType == 1)
                {
                    MailBuilder mail = new MailBuilder(title, content);

                    if (attachments.Count > 0)
                    {
                        foreach (var entity in attachments)
                        {
                            switch (entity.Type)
                            {
                            case 1:
                                mail.AddAttachment(EnumCurrencyType.Coin, entity.Count);
                                break;

                            case 2:
                                mail.AddAttachment(EnumCurrencyType.Point, entity.Count);
                                break;

                            case 3:
                                mail.AddAttachment(entity.Count, entity.ItemCode, entity.IsBinding, entity.Strength);
                                break;

                            case 4:    //声望
                                mail.AddAttachment(EnumCurrencyType.Prestige, entity.Count);
                                break;

                            case 8:    //绑劵
                                mail.AddAttachment(EnumCurrencyType.BindPoint, entity.Count);
                                break;
                            }
                        }
                    }
                    List <MailInfoEntity> mailList = new List <MailInfoEntity>(managers.Count);
                    var mailInfo = mail.MailInfo;
                    foreach (var entity in managers)
                    {
                        var mailEntity = mailInfo.Clone();
                        mailEntity.ManagerId = entity.Idx;
                        mailList.Add(mailEntity);
                    }
                    var mailTable = MailCore.BuildMailBulkTable(mailList);
                    if (MailSqlHelper.SaveMailBulk(mailTable,
                                                   ConnectionFactory.Instance.GetConnectionString(zoneId, "Main")))
                    {
                        ShowMessage("发送成功");
                        datagrid1.DataSource = null;
                        datagrid1.DataBind();
                        LocalAttachment = null;
                    }
                    else
                    {
                        ShowMessage("发送失败");
                    }
                }
                else if (mailType == 2)
                {
                    //{
                    //    MailShareBuilder mail = new MailShareBuilder(title, content);

                    //    if (attachments.Count > 0)
                    //    {
                    //        foreach (var entity in attachments)
                    //        {
                    //            switch (entity.Type)
                    //            {
                    //                case 1:
                    //                    mail.AddAttachment(EnumCurrencyType.Coin, entity.Count);
                    //                    break;
                    //                case 2:
                    //                    mail.AddAttachment(EnumCurrencyType.Point, entity.Count);
                    //                    break;
                    //                case 3:
                    //                    mail.AddAttachment(entity.Count, entity.ItemCode, entity.IsBinding, entity.Strength);
                    //                    break;
                    //                case 4://声望
                    //                    mail.AddAttachment(EnumCurrencyType.Prestige, entity.Count);
                    //                    break;
                    //                case 8://绑劵
                    //                    mail.AddAttachment(EnumCurrencyType.BindPoint, entity.Count);
                    //                    break;
                    //            }
                    //        }
                    //    }
                    //    MailshareInfoEntity mailList = new MailshareInfoEntity();
                    //    var mailInfo = mail.MailInfo;
                    //    if (managers.Count > 1)
                    //    {
                    //        ShowMessage("只支持单个发送");
                    //        return;
                    //    }
                    //    foreach (var entity in managers)
                    //    {
                    //        var mailEntity = mailInfo.Clone();
                    //        mailEntity.Account = entity.Account;
                    //    }

                    //    if (mail.Save(zoneId))
                    //    {
                    //        ShowMessage("发送成功");
                    //        datagrid1.DataSource = null;
                    //        datagrid1.DataBind();
                    //        LocalAttachment = null;
                    //    }
                    //    else
                    //    {
                    //        ShowMessage("发送失败");
                    //    }
                    //}

                    ShowMessage("请选择邮件类型");
                }
            }
            catch (Exception ex)
            {
                LogHelper.Insert(ex);
                ShowMessage("发送失败:" + ex.Message);
            }
        }
        /// <summary>
        /// 抽奖
        /// </summary>
        /// <param name="managerId"></param>
        /// <param name="zoneName"></param>
        /// <returns></returns>
        public CrossActivityPrizeResponse Prize(Guid managerId, string zoneName)
        {
            CrossActivityPrizeResponse response = new CrossActivityPrizeResponse();

            response.Data = new CrossActivityPrize();
            try
            {
                if (!IsActivity)
                {
                    return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.CrowdNoData));
                }
                var managerInfo = NbManagerMgr.GetById(managerId, zoneName);
                if (managerInfo == null)
                {
                    return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbParameterError));
                }
                var maxCount = CacheFactory.VipdicCache.GetEffectValue(managerInfo.VipLevel,
                                                                       (int)EnumVipEffect.BeThankfulActivity);
                var usedNumber = CrossactivityRecordMgr.GetActivityNumber(managerId, DateTime.Now.Date);
                if (maxCount <= usedNumber)
                {
                    return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.DayNumberNot));
                }
                var result = Prize(managerInfo.VipLevel);
                CrossactivityRecordEntity entity = new CrossactivityRecordEntity(0, managerId, zoneName, result.PrizeId,
                                                                                 DateTime.Now);
                ItemPackageFrame package = null;
                int addPoint             = 0;
                int addGoldBar           = 0;
                int itemCode             = 0;
                int itemCount            = 0;
                var messageCode          = AddPrize(result, managerId, zoneName, ref package, ref addPoint, ref addGoldBar, ref itemCode, ref itemCount);
                if (messageCode != MessageCode.Success)
                {
                    return(ResponseHelper.Create <CrossActivityPrizeResponse>(messageCode));
                }
                if (addPoint > 0)
                {
                    messageCode = PayCore.Instance.AddBonus(managerInfo.Account, addPoint, EnumChargeSourceType.CrossActivity,
                                                            ShareUtil.GenerateComb().ToString(), null, zoneName);
                    if (messageCode != MessageCode.Success)
                    {
                        return(ResponseHelper.Create <CrossActivityPrizeResponse>(messageCode));
                    }
                }
                else if (package != null)
                {
                    if (!package.Save())
                    {
                        return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbUpdateFail));
                    }
                    package.Shadow.Save();
                }
                else if (addGoldBar > 0)
                {
                    var goldBarManager = ScoutingGoldbarMgr.GetById(managerId, zoneName);
                    if (goldBarManager == null)
                    {
                        goldBarManager = new ScoutingGoldbarEntity(managerId, addGoldBar, 0, 0, 0, DateTime.Now,
                                                                   DateTime.Now);
                        if (!ScoutingGoldbarMgr.Insert(goldBarManager, null, zoneName))
                        {
                            return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbUpdateFail));
                        }
                    }
                    else
                    {
                        goldBarManager.GoldBarNumber = goldBarManager.GoldBarNumber + addGoldBar;
                        if (!ScoutingGoldbarMgr.Update(goldBarManager, null, zoneName))
                        {
                            return(ResponseHelper.Create <CrossActivityPrizeResponse>(MessageCode.NbUpdateFail));
                        }
                    }
                }
                try
                {
                    CrossactivityRecordMgr.Insert(entity);
                }
                catch
                {
                }

                response.Data.MaxNumber  = maxCount;
                response.Data.PrizeId    = result.PrizeId;
                response.Data.UsedNumber = usedNumber + 1;
                response.Data.Number     = itemCount;
                response.Data.ItemCode   = itemCode;
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("抽奖", ex);
                response.Code = (int)MessageCode.NbParameterError;
            }
            return(response);
        }
Exemple #29
0
        /// <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);
        }
Exemple #30
0
 /// <summary>
 /// 分享游戏奖励(分类)
 /// </summary>
 /// <param name="managerId"></param>
 /// <param name="shareType"></param>
 /// <returns></returns>
 public MessageCodeResponse DoShare(Guid managerId, int shareType)
 {
     try
     {
         DateTime date    = DateTime.Now;
         var      manager = NbManagerMgr.GetById(managerId);
         if (manager == null)
         {
             return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.MissManager));
         }
         var shareConfig = CacheFactory.ManagerDataCache.GetShare(shareType);
         if (shareConfig.Count <= 0)
         {
             return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NbParameterError));
         }
         var entity = ShareManagerMgr.GetByManagerId(managerId, shareType);
         if (entity != null && !shareConfig[0].IsRepetition) //不可重复领取
         {
             TaskHandler.Instance.Share(managerId);
             return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.AlreadyShare));
         }
         if (entity != null && entity.ShareNumber >= shareConfig[0].MaxShareNumber)
         {
             return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.MaxShareNumber));
         }
         if (shareType == 1) //第一种特殊处理
         {
             if (entity != null)
             {
                 if (entity.ShareNumber > 0 && (date - entity.UpdateTime).Seconds < 3600)
                 {
                     return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NowShareNotPrize));
                 }
             }
         }
         int  point   = 0;
         int  coin    = 0;
         bool isFirst = false;
         if (entity == null) //首次分享
         {
             isFirst = true;
             entity  = new ShareManagerEntity(0, managerId, shareType, 1, date, date);
         }
         else
         {
             entity.ShareNumber++;
             entity.UpdateTime = date;
         }
         var itemList    = new Dictionary <int, int>();
         var messageCode = SendPrize(shareConfig, isFirst, ref itemList, ref point, ref coin);
         var mail        = new MailBuilder(managerId, point, coin, itemList, EnumMailType.Share);
         if (messageCode != MessageCode.Success)
         {
             return(ResponseHelper.Create <MessageCodeResponse>(messageCode));
         }
         messageCode = SavePrize(entity, mail);
         return(ResponseHelper.Create <MessageCodeResponse>(messageCode));
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("分享游戏", ex);
         return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NbParameterError));
     }
 }