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(); } } }
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); } }