Example #1
0
        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);
        }
Example #3
0
        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);
        }