Ejemplo n.º 1
0
        private MessageCode Tran_SaveWincountPrizePrize(DbTransaction transaction, NbManagerEntity manager, LeagueWincountrecordEntity leagueWincountRecord, ItemPackageFrame package, int point, int coin)
        {
            if (point > 0)
            {
                var code = PayCore.Instance.AddBonus(leagueWincountRecord.ManagerId, point,
                                                     EnumChargeSourceType.LeaguePrize, ShareUtil.GenerateComb().ToString(), transaction);
                if (code != MessageCode.Success)
                {
                    return(code);
                }
            }
            else if (coin > 0)
            {
                var code = ManagerCore.Instance.AddCoin(manager, coin, EnumCoinChargeSourceType.LeaguePrize,
                                                        ShareUtil.GenerateComb().ToString(), transaction);
                if (code != MessageCode.Success)
                {
                    return(code);
                }
            }
            else
            {
                if (!package.Save(transaction))
                {
                    return(MessageCode.FailUpdate);
                }
                package.Shadow.Save();
            }

            if (!LeagueWincountrecordMgr.Update(leagueWincountRecord, transaction))
            {
                return(MessageCode.FailUpdate);
            }
            return(MessageCode.Success);
        }
Ejemplo n.º 2
0
 private MessageCode SaveMatchConfirm(NbManagerEntity manager, ItemPackageFrame package, LeagueRecordEntity leagueRecordInfo,
                                      LeagueManagerrecordEntity nextManagerRecord, LeagueManagerrecordEntity leagueManagerRecord, int point,
                                      bool isUpdatenextManagerRecord, LaegueManagerinfoEntity leagueManagerInfo, LeagueFightMapFrame fightMap, NbManagerextraEntity managerExtra, LeagueWincountrecordEntity leagueWinCount, DbTransaction trans)
 {
     if (!ManagerUtil.SaveManagerData(manager, managerExtra, trans))
     {
         return(MessageCode.NbUpdateFail);
     }
     if (!NbManagerextraMgr.Update(managerExtra, trans))
     {
         return(MessageCode.NbUpdateFail);
     }
     if (package != null)
     {
         if (!package.Save(trans))
         {
             return(MessageCode.NbUpdateFail);
         }
         package.Shadow.Save();
     }
     if (!LeagueRecordMgr.Update(leagueRecordInfo, trans))
     {
         return(MessageCode.NbUpdateFail);
     }
     if (isUpdatenextManagerRecord)
     {
         if (nextManagerRecord != null)
         {
             if (!LeagueManagerrecordMgr.Update(nextManagerRecord, trans))
             {
                 return(MessageCode.NbUpdateFail);
             }
         }
     }
     if (!LaegueManagerinfoMgr.Update(leagueManagerInfo, trans))
     {
         return(MessageCode.NbUpdateFail);
     }
     if (!LeagueManagerrecordMgr.Update(leagueManagerRecord, trans))
     {
         return(MessageCode.NbUpdateFail);
     }
     if (point > 0)
     {
         var code = PayCore.Instance.AddBonus(manager.Idx, point, EnumChargeSourceType.LeaguePrize,
                                              ShareUtil.GenerateComb().ToString(), trans);
         return(code);
     }
     if (!fightMap.SaveFIghtMap(trans))
     {
         return(MessageCode.NbUpdateFail);
     }
     if (!LeagueWincountrecordMgr.Update(leagueWinCount, trans))
     {
         return(MessageCode.NbUpdateFail);
     }
     return(MessageCode.Success);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 开启一个新的联赛
        /// </summary>
        /// <param name="managerId"></param>
        /// <param name="leagueId"></param>
        /// <param name="leagueManagerRecord"></param>
        /// <returns></returns>
        public MessageCode StartLeague(Guid managerId, int leagueId, ref LeagueManagerrecordEntity leagueManagerRecord)
        {
            var recordList = LeagueManagerrecordMgr.GetManagerAllMark(managerId);

            foreach (var record in recordList)
            {
                if (record.LaegueId == leagueId)
                {
                    leagueManagerRecord = record;
                }
                if (record.IsStart)
                {
                    return(MessageCode.LeagueHasStart);
                }
            }
            if (leagueManagerRecord == null)
            {
                return(MessageCode.NbParameterError);
            }
            if (leagueManagerRecord.IsLock)
            {
                return(MessageCode.LeagueIdMarkNotLock);
            }
            #region 去掉等级限制
            //var openLevel= LeagueCache.Instance.GetLeagueOpenLevel(leagueId);
            //if (openLevel == -1)
            //    return MessageCode.NbParameterError;
            //var manager = ManagerCore.Instance.GetManager(managerId);
            //if(manager==null)
            //    return MessageCode.NbParameterError;
            //if(manager.Level<openLevel)
            //    return MessageCode.LeagueIdMarkNotLock;
            #endregion
            DateTime date           = DateTime.Now;
            var      leagueRecordId = ShareUtil.GenerateComb();
            leagueManagerRecord.LeagueRecordId = leagueRecordId;
            //info.LastPrizeLeagueRecordId = new Guid();
            leagueManagerRecord.IsPass       = false;
            leagueManagerRecord.IsStart      = true;
            leagueManagerRecord.MatchNumber  = 0;
            leagueManagerRecord.Score        = 0;
            leagueManagerRecord.WinNumber    = 0;
            leagueManagerRecord.FlatNumber   = 0;
            leagueManagerRecord.LoseNumber   = 0;
            leagueManagerRecord.GoalsNumber  = 0;
            leagueManagerRecord.FumbleNumber = 0;
            leagueManagerRecord.UpdateTime   = date;

            var npcCount   = CacheFactory.LeagueCache.GetTeamCount(leagueId);
            var templateId = CacheFactory.LeagueCache.GetTemplateId(npcCount + 1);
            leagueManagerRecord.MaxWheelNumber = npcCount * 2;//总轮数
            leagueManagerRecord.FightDicId     = templateId;

            LeagueRecordEntity entity = new LeagueRecordEntity(leagueRecordId, managerId, leagueId, 1, 0, 0, false, date, date, ShareUtil.BaseTime);
            entity.Idx        = leagueRecordId;
            entity.ManagerId  = managerId;
            entity.LaegueId   = leagueId;
            entity.IsSend     = false;
            entity.Rank       = -1;
            entity.RowTime    = date;
            entity.Schedule   = 1;
            entity.UpdateTime = date;
            entity.Score      = 0;
            var leagueWinCount = LeagueWincountrecordMgr.GetRecord(managerId, leagueId);
            if (leagueWinCount != null)
            {
                if (leagueWinCount.PrizeDate.Date != DateTime.Now.Date)
                {
                    leagueWinCount.WinCount1Status = 0;
                    leagueWinCount.WinCount2Status = 0;
                    leagueWinCount.WinCount3Status = 0;
                    leagueWinCount.UpdateTime      = DateTime.Now;
                    leagueWinCount.PrizeDate       = DateTime.Now;
                    leagueWinCount.PrizeStep       = "0,0,0,0,0";
                }
                leagueWinCount.MaxWinCount = 0;
            }
            //更新当前联赛记录
            if (!LeagueManagerrecordMgr.Update(leagueManagerRecord))
            {
                return(MessageCode.FailUpdate);
            }
            if (!LeagueRecordMgr.Insert(entity))
            {
                return(MessageCode.FailUpdate);
            }
            var figMap = new LeagueFightMapFrame(managerId);
            figMap.ClearFightMapStartLeague(npcCount + 1);
            if (leagueWinCount != null)
            {
                if (!LeagueWincountrecordMgr.Update(leagueWinCount))
                {
                    return(MessageCode.FailUpdate);
                }
            }
            return(MessageCode.Success);
        }