Пример #1
0
        CrosscrowdManagerResponse doAction(string siteId, Guid managerId, EnumConsumeSourceType mallDirectType, bool isClearCd)
        {
            var crowd = CrossCrowdManager.Instance.GetCurrent(siteId);

            if (crowd == null || crowd.Status != 1)
            {
                return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.CrowdNoData));
            }
            DateTime curTime = DateTime.Now;
            CrosscrowdManagerEntity crowdManager = InnerGetManager(siteId, managerId, crowd.Idx, curTime);

            if (isClearCd)
            {
                var cd = MatchCdHandler.GetCdSecondsInt(managerId, EnumMatchType.CrossCrowd);
                if (cd <= 0)
                {
                    return(GetManagerInfo(siteId, managerId, crowd.Idx, DateTime.Now));
                }
                crowdManager.ClearCdCount++;
            }
            else
            {
                if (crowdManager.Morale <= 0)
                {
                    crowdManager.Morale = _initMorale;
                    crowdManager.ResurrectionCount++;
                    //crowdManager.NextMatchTime = ShareUtil.BaseTime;
                }
                else
                {
                    return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.CrowdHasMorale));
                }
            }
            var mallDirect = new CrossMallDirectFrame(siteId, managerId, mallDirectType, 0);// crowdManager.ClearCdCount);
            var checkCode  = mallDirect.Check();

            if (checkCode != MessageCode.Success)
            {
                return(ResponseHelper.Create <CrosscrowdManagerResponse>(checkCode));
            }
            crowdManager.UpdateTime = curTime;
            if (!CrosscrowdManagerMgr.Update(crowdManager))
            {
                return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.NbUpdateFail));
            }

            MatchCdHandler.Delete(managerId, EnumMatchType.CrossCrowd);
            checkCode = mallDirect.Save(Guid.NewGuid().ToString());
            if (checkCode != MessageCode.Success)
            {
                SystemlogMgr.Error("CrossCrowd-doaction", string.Format("action:{0}", mallDirectType.ToString()));
            }
            return(GetManagerInfo(siteId, managerId, crowd.Idx, DateTime.Now, mallDirect.RemainPoint, false));
        }
Пример #2
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>());
        }