private void UpdateZhanMengHongBao(GameServerClient client, int nID, byte[] cmdParams, int count) { int ret = 0; HongBaoSendData data = DataHelper.BytesToObject <HongBaoSendData>(cmdParams, 0, count); if (data != null) { using (MyDbConnection3 conn = new MyDbConnection3(false)) { string cmdText; if (data.hongBaoID == 0) { cmdText = string.Format("insert into `t_hongbao_send` (`bhid`, `senderid`, `sendername`, `sendtime`, `endtime`, `msg`, `zuanshi`, `count`, `type`, `leftzuanshi`, `leftcount`, `state`) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','0');", new object[] { data.bhid, data.senderID, data.sender, data.sendTime.ToString("yyyy-MM-dd HH:mm:ss"), data.endTime.ToString("yyyy-MM-dd HH:mm:ss"), data.message, data.sumDiamondNum, data.sumCount, data.type, data.leftZuanShi, data.leftCount }); } else { cmdText = string.Format("replace into `t_hongbao_send` (`bhid`, `senderid`, `sendername`, `sendtime`, `endtime`, `msg`, `zuanshi`, `count`, `type`, `leftzuanshi`, `leftcount`, `state`,`id`) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}',{12});", new object[] { data.bhid, data.senderID, data.sender, data.sendTime.ToString("yyyy-MM-dd HH:mm:ss"), data.endTime.ToString("yyyy-MM-dd HH:mm:ss"), data.message, data.sumDiamondNum, data.sumCount, data.type, data.leftZuanShi, data.leftCount, data.hongBaoStatus, data.hongBaoID }); } ret = conn.ExecuteSql(cmdText, new MySQLParameter[0]); if (ret >= 0 && data.hongBaoID == 0) { cmdText = "SELECT LAST_INSERT_ID();"; ret = conn.GetSingleInt(cmdText, 0, new MySQLParameter[0]); } } } client.sendCmd <int>(nID, ret); }
public List <HongBaoSendData> SendHongBaoProc(DateTime now, Dictionary <int, HongBaoSendData> dict) { List <HongBaoSendData> result; if (GameManager.IsKuaFuServer) { result = null; } else { List <HongBaoSendData> list = new List <HongBaoSendData>(); lock (this.Mutex) { foreach (RedPacketPeopleItem item in this.HongBaoDict.Values) { if (now > item.SendTime && !this.HongBaoIdSended.Contains(item.ID)) { DateTime endTime = item.SendTime.AddSeconds((double)item.DurationTime); if (!(now >= endTime)) { foreach (HongBaoSendData hongbao in dict.Values) { if (hongbao.senderID == item.ID) { this.HongBaoIdSended.Add(item.ID); } } if (!this.HongBaoIdSended.Contains(item.ID)) { HongBaoSendData sendData = new HongBaoSendData(); sendData.senderID = item.ID; sendData.sender = this.ActivityKeyStr; sendData.sendTime = item.SendTime; sendData.type = 102; sendData.endTime = item.SendTime.AddSeconds((double)item.DurationTime); sendData.message = this.RedPacketsQuanMinMessage; sendData.sumDiamondNum = item.RedPacketSize; sendData.leftZuanShi = item.RedPacketSize; int hongbaoId = Global.sendToDB <int, HongBaoSendData>(1435, sendData, GameManager.ServerId); if (hongbaoId > 0) { sendData.hongBaoID = hongbaoId; this.HongBaoIdSended.Add(item.ID); list.Add(sendData); } } } } } } result = list; } return(result); }
private void GetZhanMengHongBaoRecvList(GameServerClient client, int nID, byte[] cmdParams, int count) { HongBaoSendData data = new HongBaoSendData(); try { int hongBaoId = DataHelper.BytesToObject <int>(cmdParams, 0, count); using (MyDbConnection3 conn = new MyDbConnection3(false)) { string cmdText = string.Format("SELECT `id`,`bhid`,`senderid`,`sendername`,`sendtime`,`endtime`,`msg`,`zuanshi`,`count`,`type`,`leftzuanshi`,`leftcount`,`state` FROM `t_hongbao_send` WHERE id={0};", hongBaoId); MySQLDataReader reader = conn.ExecuteReader(cmdText, new MySQLParameter[0]); while (reader.Read()) { data.hongBaoID = Global.SafeConvertToInt32(reader[0].ToString(), 10); data.bhid = Global.SafeConvertToInt32(reader[1].ToString(), 10); data.senderID = Global.SafeConvertToInt32(reader[2].ToString(), 10); data.sender = reader[3].ToString(); data.sendTime = Global.SafeConvertToDateTime(reader[4].ToString(), DateTime.MinValue); data.endTime = Global.SafeConvertToDateTime(reader[5].ToString(), DateTime.MinValue); data.message = reader[6].ToString(); data.sumDiamondNum = Global.SafeConvertToInt32(reader[7].ToString(), 10); data.sumCount = Global.SafeConvertToInt32(reader[8].ToString(), 10); data.type = Global.SafeConvertToInt32(reader[9].ToString(), 10); data.leftZuanShi = Global.SafeConvertToInt32(reader[10].ToString(), 10); data.leftCount = Global.SafeConvertToInt32(reader[11].ToString(), 10); data.hongBaoStatus = Global.SafeConvertToInt32(reader[12].ToString(), 10); } reader.Close(); data.RecvList = new List <HongBaoRecvData>(); cmdText = string.Format("SELECT `bhid`,`rid`,`rname`,`recvtime`,`zuanshi` FROM t_hongbao_recv WHERE hongbaoid={0};", hongBaoId); MySQLDataReader mySQLDataReader; reader = (mySQLDataReader = conn.ExecuteReader(cmdText, new MySQLParameter[0])); try { while (reader.Read()) { HongBaoRecvData recvData = new HongBaoRecvData(); recvData.HongBaoID = Global.SafeConvertToInt32(reader[0].ToString(), 10); recvData.RoleId = Global.SafeConvertToInt32(reader[1].ToString(), 10); recvData.RoleName = reader[2].ToString(); recvData.RecvTime = Global.SafeConvertToDateTime(reader[3].ToString(), DateTime.MinValue); recvData.ZuanShi = Global.SafeConvertToInt32(reader[4].ToString(), 10); data.RecvList.Add(recvData); } } finally { if (mySQLDataReader != null) { ((IDisposable)mySQLDataReader).Dispose(); } } reader.Close(); } } catch (Exception ex) { LogManager.WriteException(ex.ToString()); } client.sendCmd <HongBaoSendData>(nID, data); }