Beispiel #1
0
 MessageCode SaveExchange(CrossladderManagerEntity ladderManager, ItemPackageFrame package, CrossladderExchangerecordEntity ladderExchangerecord)
 {
     if (ladderManager == null || package == null || ladderExchangerecord == null)
     {
         return(MessageCode.NbUpdateFail);
     }
     try
     {
         if (!CrossladderManagerMgr.Update(ladderManager))
         {
             return(MessageCode.NbUpdateFail);
         }
         if (!package.Save())
         {
             return(MessageCode.NbUpdateFail);
         }
         if (!CrossladderExchangerecordMgr.Insert(ladderExchangerecord))
         {
             return(MessageCode.NbUpdateFail);
         }
         return(MessageCode.Success);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("CrossLadder-SaveExchange", ex);
         return(MessageCode.Exception);
     }
 }
Beispiel #2
0
        /// <summary>
        /// 报名天梯赛.
        /// </summary>
        /// <returns></returns>
        public MessageCodeResponse Attend(string siteId, Guid managerId)
        {
            if (!IsManagerBusy(managerId))
            {
                if (!CompetitorDic.ContainsKey(managerId))
                {
                    var response = CrossLadderCore.Instance.GetManagerInfo(siteId, managerId);
                    if (response.Code != ShareUtil.SuccessCode)
                    {
                        return(ResponseHelper.Create <MessageCodeResponse>(response.Code));
                    }
                    if (response.Data == null)
                    {
                        return(ResponseHelper.InvalidParameter <MessageCodeResponse>());
                    }
                    var ladderManager = response.Data;
                    //if (ladderManager.Stamina <= 0)
                    //{
                    //    return ResponseHelper.Create<MessageCodeResponse>(MessageCode.LadderStaminaShortage);
                    //}
                    var  kpi        = ManagerUtil.GetKpi(managerId, siteId);
                    bool needUpdate = false;
                    if (kpi != ladderManager.Kpi)
                    {
                        ladderManager.Kpi = kpi;
                        needUpdate        = true;
                    }
                    if (ladderManager.DomainId != _domainId)
                    {
                        ladderManager.DomainId = _domainId;
                        needUpdate             = true;
                    }
                    if (needUpdate)
                    {
                        CrossladderManagerMgr.Update(ladderManager);
                    }
                    response.Data.ShowName = ShareUtil.GetCrossManagerNameByZoneId(siteId, response.Data.Name);
                    //锁住
                    lock (_competitorLock)
                    {
                        if (_playerNum == 0)
                        {
                            _startTime = DateTime.Now;
                        }

                        CompetitorDic.Add(managerId, response.Data);
                        _playerNum++;
                    }
                }
                return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.Success));
            }
            else
            {
                return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.LadderBusy));
            }
        }
Beispiel #3
0
        public MessageCodeResponse BuyStamina(string siteId, Guid managerId)
        {
            var response1 = GetLadderManager(siteId, managerId);

            if (response1 == null)
            {
                return(ResponseHelper.InvalidParameter <MessageCodeResponse>());
            }
            if (response1.Code != ShareUtil.SuccessCode)
            {
                return(ResponseHelper.Create <MessageCodeResponse>(response1.Code));
            }

            var mallDirect = new CrossMallDirectFrame(siteId, managerId, EnumConsumeSourceType.CrossLadderStamina);
            var checkCode  = mallDirect.Check();

            if (checkCode != MessageCode.Success)
            {
                return(ResponseHelper.Create <MessageCodeResponse>(checkCode));
            }
            var ladderManager = response1.Data;

            ladderManager.StaminaBuy = ladderManager.StaminaBuy + 1;
            ladderManager.Stamina    = ladderManager.Stamina + 1;
            if (!CrossladderManagerMgr.Update(ladderManager))
            {
                return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NbUpdateFail));
            }

            checkCode = mallDirect.Save(Guid.NewGuid().ToString());
            if (checkCode != MessageCode.Success)
            {
                SystemlogMgr.Error("CrossLadder-BuyStamina fail", string.Format("ManagerId:{0}", managerId));
            }
            return(ResponseHelper.CreateSuccess <MessageCodeResponse>());
        }