Example #1
0
        public bool SaveGravelDistributeRecordInfo(GravelDistributeRecordInfo record, CustomerMySqlTransaction myTrans)
        {
            MySqlCommand mycmd = null;

            try
            {
                mycmd = myTrans.CreateCommand();

                string sqlText = "insert into  graveldistributerecordinfo (`CreateDate`,`AllPlayerCount`,`RequestPlayerCount`,`ResponseGravelCount`) values (@CreateDate,@AllPlayerCount,@RequestPlayerCount,@ResponseGravelCount); ";

                mycmd.Parameters.AddWithValue("@CreateDate", record.CreateDate);
                mycmd.Parameters.AddWithValue("@AllPlayerCount", record.AllPlayerCount);
                mycmd.Parameters.AddWithValue("@RequestPlayerCount", record.RequestPlayerCount);
                mycmd.Parameters.AddWithValue("@ResponseGravelCount", record.ResponseGravelCount);
                mycmd.CommandText = sqlText;

                mycmd.ExecuteNonQuery();
                return(true);
            }
            finally
            {
                if (mycmd != null)
                {
                    mycmd.Dispose();
                }
            }
        }
Example #2
0
        public void DistributeGravel()
        {
            try
            {
                //每天只执行一次
                DateTime nowtime = DateTime.Now;
                if (nowtime.DayOfYear == this.exeDistributeTime.DayOfYear)
                {
                    return;
                }
                this.exeDistributeTime = nowtime;

                PlayerGravelRequsetRecordInfo[] records = DBProvider.GravelDBProvider.GetLastDayPlayerGravelRequsetRecords(new MetaData.MyDateTime(DateTime.Now.AddDays(-1)), -1);
                if (records == null || records.Length == 0)
                {
                    return;
                }

                int playerCount = DBProvider.UserDBProvider.GetAllPlayerCount();

                GravelDistributeRecordInfo distributeRecord = new GravelDistributeRecordInfo();
                distributeRecord.AllPlayerCount     = playerCount;
                distributeRecord.CreateDate         = new MetaData.MyDateTime(DateTime.Now);
                distributeRecord.RequestPlayerCount = records.Length;

                int gravel = playerCount / records.Length;
                if (gravel < GlobalConfig.GameConfig.GravelMin)
                {
                    gravel = GlobalConfig.GameConfig.GravelMin;
                }
                foreach (var item in records)
                {
                    item.Gravel       = gravel;
                    item.IsResponsed  = true;
                    item.ResponseDate = distributeRecord.CreateDate;
                }

                MyDBHelper.Instance.TransactionDataBaseOper(myTrans =>
                {
                    DBProvider.GravelDBProvider.UpdatePlayerGravelRequsetRecords(records, myTrans);
                    DBProvider.GravelDBProvider.SaveGravelDistributeRecordInfo(distributeRecord, myTrans);
                    return(OperResult.RESULTCODE_TRUE);
                },
                                                            exc =>
                {
                    if (exc != null)
                    {
                        LogHelper.Instance.AddErrorLog("GravelController.DistributeGravel Save ToDB Transaction Exception", exc);
                    }
                });

                if (PlayerGravelInfoChanged != null)
                {
                    foreach (var item in records)
                    {
                        PlayerGravelInfoChanged(item.UserName);
                    }
                }
            }
            catch (Exception exc)
            {
                LogHelper.Instance.AddErrorLog("GravelController.DistributeGravel Exception", exc);
            }
        }