Пример #1
0
        PenaltykickManagerEntity GetManager(Guid managerId)
        {
            var      info = PenaltykickManagerMgr.GetById(managerId);
            DateTime date = DateTime.Now;

            if (info == null)
            {
                if (IsActivity)
                {
                    //默认1次免费次数,每天最多产出5个
                    info = new PenaltykickManagerEntity(managerId, 0, 1, 0, 5, 0, 0, 0, 0, "", 0, 0, RefreshExChange(),
                                                        0, 0,
                                                        false, date, date, date, date);
                    PenaltykickManagerMgr.Insert(info);
                }
                else
                {
                    info = new PenaltykickManagerEntity(managerId, 0, 0, 0, 0, 0, 0, 0, 0, "", 0, 0, RefreshExChange(),
                                                        0, 0,
                                                        false, date, date, date, date);
                }
            }
            //每天补充免费次数
            if (info.RefreshDate.Date != date.Date)
            {
                if (IsActivity)
                {
                    info.FreeNumber          = 1;
                    info.DayProduceLuckyCoin = 5;
                    info.RefreshDate         = date;
                    PenaltykickManagerMgr.Update(info);
                }
            }
            return(info);
        }
        /// <summary>
        /// 将IDataReader的当前记录读取到PenaltykickManagerEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public PenaltykickManagerEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new PenaltykickManagerEntity();

            obj.ManagerId           = (System.Guid)reader["ManagerId"];
            obj.ShootNumber         = (System.Int32)reader["ShootNumber"];
            obj.FreeNumber          = (System.Int32)reader["FreeNumber"];
            obj.GameCurrency        = (System.Int32)reader["GameCurrency"];
            obj.DayProduceLuckyCoin = (System.Int32)reader["DayProduceLuckyCoin"];
            obj.TotalScore          = (System.Int32)reader["TotalScore"];
            obj.AvailableScore      = (System.Int32)reader["AvailableScore"];
            obj.TotalGoals          = (System.Int32)reader["TotalGoals"];
            obj.ShooterAttribute    = (System.Int32)reader["ShooterAttribute"];
            obj.ShootLog            = (System.String)reader["ShootLog"];
            obj.CombGoals           = (System.Int32)reader["CombGoals"];
            obj.MaxCombGoals        = (System.Int32)reader["MaxCombGoals"];
            obj.ExChangeString      = (System.String)reader["ExChangeString"];
            obj.Status          = (System.Int32)reader["Status"];
            obj.Rank            = (System.Int32)reader["Rank"];
            obj.IsPrize         = (System.Boolean)reader["IsPrize"];
            obj.UpdateTime      = (System.DateTime)reader["UpdateTime"];
            obj.RowTime         = (System.DateTime)reader["RowTime"];
            obj.RefreshDate     = (System.DateTime)reader["RefreshDate"];
            obj.ScoreChangeTime = (System.DateTime)reader["ScoreChangeTime"];

            return(obj);
        }
Пример #3
0
        private GetPenaltyKickInfo GetManagerInfoResponse(PenaltykickManagerEntity info)
        {
            var entity = new GetPenaltyKickInfo();

            entity.AvailableScore   = info.AvailableScore;
            entity.CombGoals        = info.CombGoals;
            entity.FreeNumber       = info.FreeNumber;
            entity.GameCurrency     = info.GameCurrency;
            entity.MaxCombGoals     = info.MaxCombGoals;
            entity.ShooterAttribute = info.ShooterAttribute;
            entity.ShootLog         = info.ShootLog;
            entity.Status           = info.Status;
            entity.TotalScore       = info.TotalScore;
            if (info.ExChangeString.Length == 0)
            {
                info.ExChangeString = RefreshExChange();
            }
            var exList = GetExChangeEntity(info.ExChangeString);

            //所有物品都兑换完了  自动刷新
            if (!exList.Exists(r => r.Status == 0))
            {
                info.ExChangeString = RefreshExChange();
            }
            exList = GetExChangeEntity(info.ExChangeString);
            entity.ExChangeList = exList;
            return(entity);
        }
Пример #4
0
        /// <summary>
        /// 更新排名
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public MessageCode UpdateRank(PenaltykickManagerEntity info)
        {
            if (info == null)
            {
                return(MessageCode.Success);
            }
            PenaltyKickRankEntity entity = null;

            if (_rankDic.ContainsKey(info.ManagerId))
            {
                entity = _rankDic[info.ManagerId];
                entity.ScoreChangeTime = info.ScoreChangeTime;
                entity.TotalScore      = info.TotalScore;
            }
            else
            {
                var manager = ManagerCore.Instance.GetManager(info.ManagerId);
                if (manager == null)
                {
                    return(MessageCode.NbParameterError);
                }
                entity                 = new PenaltyKickRankEntity();
                entity.ManagerId       = info.ManagerId;
                entity.Name            = manager.Name;
                entity.ScoreChangeTime = info.ScoreChangeTime;
                entity.TotalScore      = info.TotalScore;
                _rankDic.TryAdd(info.ManagerId, entity);
            }
            var rankList = _rankDic.Values.OrderByDescending(r => r.TotalScore).ToList();
            var dic      = new ConcurrentDictionary <Guid, PenaltyKickRankEntity>();

            for (int i = 0; i < rankList.Count; i++)
            {
                if (i >= 100)
                {
                    break;
                }
                rankList[i].Rank = i + 1;
                if (!dic.ContainsKey(rankList[i].ManagerId))
                {
                    dic.TryAdd(rankList[i].ManagerId, rankList[i]);
                }
            }
            _rankDic = dic;
            return(MessageCode.Success);
        }
Пример #5
0
        /// <summary>
        /// 射门结果处理
        /// </summary>
        /// <param name="info"></param>
        /// <param name="isGoals"></param>
        public void Shoot(PenaltykickManagerEntity info, bool isGoals)
        {
            if (isGoals)
            {
                if (info.ShootLog.Length == 0)
                {
                    info.ShootLog += 1;
                }
                else
                {
                    info.ShootLog += "," + 1;
                }
            }
            else
            {
                if (info.ShootLog.Length == 0)
                {
                    info.ShootLog += 0;
                }
                else
                {
                    info.ShootLog += "," + 0;
                }
            }
            if (!isGoals)
            {
                info.CombGoals = 0;
            }
            else
            {
                info.CombGoals++;
                info.TotalGoals++;
                if (info.MaxCombGoals < info.CombGoals)
                {
                    info.MaxCombGoals = info.CombGoals;
                }
            }
            var shootList = info.ShootLog.Split(',');

            if (shootList.Length >= 5)
            {
                info.Status = 2;//射门结束
            }
        }
        /// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016/9/28 13:30:55</remarks>
        public bool Update(PenaltykickManagerEntity entity, DbTransaction trans = null)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_PenaltykickManager_Update");

            database.AddInParameter(commandWrapper, "@ManagerId", DbType.Guid, entity.ManagerId);
            database.AddInParameter(commandWrapper, "@ShootNumber", DbType.Int32, entity.ShootNumber);
            database.AddInParameter(commandWrapper, "@FreeNumber", DbType.Int32, entity.FreeNumber);
            database.AddInParameter(commandWrapper, "@GameCurrency", DbType.Int32, entity.GameCurrency);
            database.AddInParameter(commandWrapper, "@DayProduceLuckyCoin", DbType.Int32, entity.DayProduceLuckyCoin);
            database.AddInParameter(commandWrapper, "@TotalScore", DbType.Int32, entity.TotalScore);
            database.AddInParameter(commandWrapper, "@AvailableScore", DbType.Int32, entity.AvailableScore);
            database.AddInParameter(commandWrapper, "@TotalGoals", DbType.Int32, entity.TotalGoals);
            database.AddInParameter(commandWrapper, "@ShooterAttribute", DbType.Int32, entity.ShooterAttribute);
            database.AddInParameter(commandWrapper, "@ShootLog", DbType.AnsiString, entity.ShootLog);
            database.AddInParameter(commandWrapper, "@CombGoals", DbType.Int32, entity.CombGoals);
            database.AddInParameter(commandWrapper, "@MaxCombGoals", DbType.Int32, entity.MaxCombGoals);
            database.AddInParameter(commandWrapper, "@ExChangeString", DbType.AnsiString, entity.ExChangeString);
            database.AddInParameter(commandWrapper, "@Status", DbType.Int32, entity.Status);
            database.AddInParameter(commandWrapper, "@Rank", DbType.Int32, entity.Rank);
            database.AddInParameter(commandWrapper, "@IsPrize", DbType.Boolean, entity.IsPrize);
            database.AddInParameter(commandWrapper, "@UpdateTime", DbType.DateTime, entity.UpdateTime);
            database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime);
            database.AddInParameter(commandWrapper, "@RefreshDate", DbType.Date, entity.RefreshDate);
            database.AddInParameter(commandWrapper, "@ScoreChangeTime", DbType.DateTime, entity.ScoreChangeTime);


            int results = 0;

            if (trans != null)
            {
                results = database.ExecuteNonQuery(commandWrapper, trans);
            }
            else
            {
                results = database.ExecuteNonQuery(commandWrapper);
            }

            entity.ManagerId = (System.Guid)database.GetParameterValue(commandWrapper, "@ManagerId");

            return(Convert.ToBoolean(results));
        }
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="managerId">managerId</param>
        /// <returns>PenaltykickManagerEntity</returns>
        /// <remarks>2016/9/28 13:30:55</remarks>
        public PenaltykickManagerEntity GetById(System.Guid managerId)
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("P_PenaltykickManager_GetById");

            database.AddInParameter(commandWrapper, "@ManagerId", DbType.Guid, managerId);


            PenaltykickManagerEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
Пример #8
0
        public static bool Update(PenaltykickManagerEntity penaltykickManagerEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new PenaltykickManagerProvider(zoneId);

            return(provider.Update(penaltykickManagerEntity, trans));
        }