public bool SaveSupportLog(ZhengBaSupportLogData data) { if (data == null) { return(false); } try { string sql = string.Format("INSERT INTO t_zhengba_support_log(month,from_rid,from_zoneid,from_rolename,support_type,to_union_group,to_group,`time`,rank_of_day,from_serverid) " + "VALUES({0},{1},{2},'{3}',{4},{5},{6},'{7}',{8},{9});", ZhengBaUtils.MakeMonth(data.Time), data.FromRoleId, data.FromZoneId, data.FromRolename, (int)data.SupportType, data.ToUnionGroup, data.ToGroup, data.Time.ToString("yyyy-MM-dd HH:mm:ss"), data.RankOfDay, data.FromServerId); if (DbHelperMySQL.ExecuteSql(sql) <= 0) { return(false); } } catch (Exception ex) { LogManager.WriteLog(LogTypes.Error, "SaveSupportLog failed!", ex); return(false); } return(true); }
private void HandleSaveSupportLog(GameServerClient client, int nID, byte[] cmdParams, int count) { try { ZhengBaSupportLogData data = DataHelper.BytesToObject <ZhengBaSupportLogData>(cmdParams, 0, count); if (data.FromServerId == GameDBManager.ZoneID) { string flagSql = string.Format("INSERT INTO t_zhengba_support_flag(month,rank_of_day,from_rid,from_zoneid,from_rolename,support_type,to_union_group,to_group,time,from_serverid) VALUES({0},{1},{2},{3},'{4}',{5},{6},{7},'{8}',{9})", new object[] { data.Month, data.RankOfDay, data.FromRoleId, data.FromZoneId, data.FromRolename, data.SupportType, data.ToUnionGroup, data.ToGroup, data.Time.ToString("yyyy-MM-dd HH:mm:ss"), data.FromServerId }); if (!this.ExecNonQuery(flagSql)) { client.sendCmd <bool>(nID, false); return; } } string updateSql = string.Format("INSERT INTO t_zhengba_support_log(month,rank_of_day,from_rid,from_zoneid,from_rolename,support_type,to_union_group,to_group,time,from_serverid) VALUES({0},{1},{2},{3},'{4}',{5},{6},{7},'{8}',{9})", new object[] { data.Month, data.RankOfDay, data.FromRoleId, data.FromZoneId, data.FromRolename, data.SupportType, data.ToUnionGroup, data.ToGroup, data.Time.ToString("yyyy-MM-dd HH:mm:ss"), data.FromServerId }); if (!this.ExecNonQuery(updateSql)) { } client.sendCmd <bool>(nID, true); } catch (Exception ex) { LogManager.WriteException(ex.Message); client.sendCmd <bool>(nID, false); } }
public int ZhengBaSupport(ZhengBaSupportLogData data) { int result; if (data == null || !this.Persistence.SaveSupportLog(data)) { result = -15; } else { lock (this.Mutex) { ZhengBaSupportAnalysisData support; if ((support = this.SyncData.SupportList.Find((ZhengBaSupportAnalysisData _s) => _s.UnionGroup == data.ToUnionGroup && _s.Group == data.ToGroup)) == null) { support = new ZhengBaSupportAnalysisData { UnionGroup = data.ToUnionGroup, Group = data.ToGroup, RankOfDay = data.RankOfDay }; this.SyncData.SupportList.Add(support); } if (data.SupportType == 1) { support.TotalSupport++; } else if (data.SupportType == 2) { support.TotalOppose++; } else if (data.SupportType == 3) { support.TotalYaZhu++; } this.SyncData.SupportModTime = TimeUtil.NowDateTime(); this.AsyncEvQ.Enqueue(new AsyncDataItem(KuaFuEventTypes.ZhengBaSupport, new object[] { data })); } result = 1; } return(result); }
public int ZhengBaSupport(ZhengBaSupportLogData data) { ITianTiService kuaFuService = GetKuaFuService(); if (null != kuaFuService) { try { return(kuaFuService.ZhengBaSupport(data)); } catch (System.Exception ex) { ResetKuaFuService(); } } return(StdErrorCode.Error_Server_Internal_Error); }
public int ZhengBaSupport(ZhengBaSupportLogData data) { if (data == null || !Persistence.SaveSupportLog(data)) { return(StdErrorCode.Error_DB_Faild); } lock (Mutex) { ZhengBaSupportAnalysisData support = null; if ((support = SyncData.SupportList.Find(_s => _s.UnionGroup == data.ToUnionGroup && _s.Group == data.ToGroup)) == null) { support = new ZhengBaSupportAnalysisData() { UnionGroup = data.ToUnionGroup, Group = data.ToGroup, RankOfDay = data.RankOfDay }; SyncData.SupportList.Add(support); } if (data.SupportType == (int)EZhengBaSupport.Support) { support.TotalSupport++; } else if (data.SupportType == (int)EZhengBaSupport.Oppose) { support.TotalOppose++; } else if (data.SupportType == (int)EZhengBaSupport.YaZhu) { support.TotalYaZhu++; } SyncData.SupportModTime = TimeUtil.NowDateTime(); AsyncEvQ.Enqueue(new AsyncDataItem(KuaFuEventTypes.ZhengBaSupport, data)); } return(StdErrorCode.Error_Success); }
public int ZhengBaSupport(ZhengBaSupportLogData data) { return(ZhengBaManagerK.Instance().ZhengBaSupport(data)); }
public void EventCallBackHandler(int eventType, params object[] args) { try { switch (eventType) { case (int)KuaFuEventTypes.NotifyWaitingRoleCount: { if (args.Length == 2) { int rid = (int)args[0]; int count = (int)args[1]; CoreInterface.GetEventSourceInterface().fireEvent(new KuaFuFuBenRoleCountEvent(rid, count), SceneType); } } break; case (int)KuaFuEventTypes.RoleSignUp: case (int)KuaFuEventTypes.RoleStateChange: { if (args.Length == 1) { KuaFuRoleData kuaFuRoleData = args[0] as KuaFuRoleData; if (null != kuaFuRoleData) { UpdateRoleData(kuaFuRoleData, kuaFuRoleData.RoleId); } } } break; case (int)KuaFuEventTypes.UpdateAndNotifyEnterGame: { if (args.Length == 1) { KuaFuRoleData kuaFuRoleData = args[0] as KuaFuRoleData; if (null != kuaFuRoleData) { UpdateRoleData(kuaFuRoleData, kuaFuRoleData.RoleId); TianTiFuBenData TianTiFuBenData = GetKuaFuFuBenData(kuaFuRoleData.GameId); if (null != TianTiFuBenData && TianTiFuBenData.State == GameFuBenState.Start) { KuaFuServerLoginData kuaFuServerLoginData = new KuaFuServerLoginData() { RoleId = kuaFuRoleData.RoleId, GameType = kuaFuRoleData.GameType, GameId = kuaFuRoleData.GameId, EndTicks = kuaFuRoleData.StateEndTicks, }; kuaFuServerLoginData.ServerId = ClientInfo.ServerId; lock (Mutex) { KuaFuServerInfo kuaFuServerInfo; if (ServerIdServerInfoDict.TryGetValue(TianTiFuBenData.ServerId, out kuaFuServerInfo)) { kuaFuServerLoginData.ServerIp = kuaFuServerInfo.Ip; kuaFuServerLoginData.ServerPort = kuaFuServerInfo.Port; } } CoreInterface.GetEventSourceInterface().fireEvent(new KuaFuNotifyEnterGameEvent(kuaFuServerLoginData), SceneType); } } } } break; case (int)KuaFuEventTypes.ZhengBaSupport: { ZhengBaSupportLogData data = args[0] as ZhengBaSupportLogData; if (null != data && data.FromServerId != ClientInfo.ServerId) { CoreInterface.GetEventSourceInterface().fireEvent(new KFZhengBaSupportEvent(data), (int)SceneUIClasses.KFZhengBa); } } break; case (int)KuaFuEventTypes.ZhengBaPkLog: { if (args.Length == 1) { ZhengBaPkLogData log = args[0] as ZhengBaPkLogData; if (log != null) { CoreInterface.GetEventSourceInterface().fireEvent(new KFZhengBaPkLogEvent(log), (int)SceneUIClasses.KFZhengBa); } } } break; case (int)KuaFuEventTypes.ZhengBaNtfEnter: { ZhengBaNtfEnterData data = args[0] as ZhengBaNtfEnterData; lock (Mutex) { KuaFuServerInfo kuaFuServerInfo; if (ServerIdServerInfoDict.TryGetValue(data.ToServerId, out kuaFuServerInfo)) { data.ToServerIp = kuaFuServerInfo.Ip; data.ToServerPort = kuaFuServerInfo.Port; } else { LogManager.WriteLog(LogTypes.Error, string.Format("KuaFuEventTypes.ZhengBaNtfEnter not find kfserver={0}", data.ToServerId)); } } CoreInterface.GetEventSourceInterface().fireEvent(new KFZhengBaNtfEnterEvent(data), (int)SceneUIClasses.KFZhengBa); } break; case (int)KuaFuEventTypes.ZhengBaMirrorFight: { ZhengBaMirrorFightData data = args[0] as ZhengBaMirrorFightData; CoreInterface.GetEventSourceInterface().fireEvent(new KFZhengBaMirrorFightEvent(data), (int)SceneUIClasses.KFZhengBa); } break; case (int)KuaFuEventTypes.ZhengBaButtetinJoin: { ZhengBaBulletinJoinData data = args[0] as ZhengBaBulletinJoinData; CoreInterface.GetEventSourceInterface().fireEvent(new KFZhengBaBulletinJoinEvent(data), (int)SceneUIClasses.KFZhengBa); } break; case (int)KuaFuEventTypes.CoupleArenaCanEnter: { CoreInterface.GetEventSourceInterface().fireEvent( new CoupleArenaCanEnterEvent(args[0] as CoupleArenaCanEnterData), (int)SceneUIClasses.CoupleArena); } break; } } catch (Exception ex) { LogManager.WriteExceptionUseCache(ex.ToString()); } }
private void HandleLoadSupportLog(GameServerClient client, int nID, byte[] cmdParams, int count) { string cmdData = null; try { cmdData = new UTF8Encoding().GetString(cmdParams, 0, count); } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("解析指令字符串错误, CMD={0}", (TCPGameServerCmds)nID), null, true); client.sendCmd(30767, "0"); return; } string[] fields = cmdData.Split(new char[] { ':' }); if (fields.Length != 2) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); client.sendCmd(30767, "0"); } else { int month = Convert.ToInt32(fields[0]); int maxNum = Convert.ToInt32(fields[1]); List <int> toUnionGropuList = new List <int>(); string sql = string.Format("SELECT DISTINCT(to_union_group) FROM t_zhengba_support_log WHERE `month`={0}", month); MySQLDataReader reader = this.ExecSelect(sql); while (reader != null && reader.Read()) { int toUnionGroup = Convert.ToInt32(reader["to_union_group"].ToString()); toUnionGropuList.Add(toUnionGroup); } Dictionary <int, List <ZhengBaSupportLogData> > supportLogs = new Dictionary <int, List <ZhengBaSupportLogData> >(); foreach (int g in toUnionGropuList) { sql = string.Format("SELECT from_rid,from_zoneid,from_rolename,support_type,to_union_group,to_group,time,month,rank_of_day,from_serverid FROM t_zhengba_support_log WHERE month={0} AND `to_union_group`={1} ORDER BY `time` DESC limit {2};", month, g, maxNum); reader = this.ExecSelect(sql); while (reader != null && reader.Read()) { int toUnionGroup = Convert.ToInt32(reader["to_union_group"].ToString()); List <ZhengBaSupportLogData> LogList = null; if (!supportLogs.TryGetValue(toUnionGroup, out LogList)) { LogList = (supportLogs[toUnionGroup] = new List <ZhengBaSupportLogData>()); } ZhengBaSupportLogData log = new ZhengBaSupportLogData(); log.FromRoleId = Convert.ToInt32(reader["from_rid"].ToString()); log.FromZoneId = Convert.ToInt32(reader["from_zoneid"].ToString()); log.FromRolename = reader["from_rolename"].ToString(); log.SupportType = Convert.ToInt32(reader["support_type"].ToString()); log.ToUnionGroup = toUnionGroup; log.ToGroup = Convert.ToInt32(reader["to_group"].ToString()); log.Month = Convert.ToInt32(reader["month"].ToString()); log.RankOfDay = Convert.ToInt32(reader["rank_of_day"].ToString()); log.FromServerId = Convert.ToInt32(reader["from_serverid"].ToString()); log.Time = DateTime.Parse(reader["time"].ToString()); LogList.Add(log); } } foreach (List <ZhengBaSupportLogData> logList in supportLogs.Values) { logList.Reverse(); } client.sendCmd <Dictionary <int, List <ZhengBaSupportLogData> > >(nID, supportLogs); } }
public KFZhengBaSupportEvent(ZhengBaSupportLogData data) : base((int)GlobalEventTypes.KFZhengBaSupportLog) { this.Data = data; }