public List <AllyLogData> DBAllyLogList(int unionID) { List <AllyLogData> list = new List <AllyLogData>(); try { string strSql = string.Format(@"SELECT l.myUnionID,l.unionID,u.unionZoneID,u.unionName,l.logTime,l.logState FROM t_ally_log l,t_ally_union u WHERE l.unionID = u.unionID AND l.unionID='{0}'", unionID); var sdr = DbHelperMySQL.ExecuteReader(strSql); while (sdr != null && sdr.Read()) { AllyLogData item = new AllyLogData(); item.MyUnionID = (int)Convert.ToInt32(sdr["myUnionID"]); item.UnionID = (int)Convert.ToInt32(sdr["unionID"]); item.LogTime = Convert.ToDateTime(sdr["logTime"]); item.LogState = (int)Convert.ToInt32(sdr["logState"]); list.Add(item); } if (sdr != null) { sdr.Close(); } } catch (Exception ex) { LogManager.WriteExceptionUseCache(ex.ToString()); } return(list); }
public bool DBAllyLogAdd(AllyLogData logData) { string sql = string.Format("INSERT INTO t_ally_log(myUnionID, unionID, logTime,logState) VALUES('{0}','{1}','{2}','{3}')", logData.MyUnionID, logData.UnionID, logData.LogTime, logData.LogState); int i = ExecuteSqlNoQuery(sql); return(i > 0); }
//Remove public int OperateRemove(int serverID, int unionID, int targetID, bool isDel = false) { lock (_Mutex) { KFAllyData targetData = GetUnionData(targetID); if (targetData == null) return (int)EAlly.ENoTargetUnion; if (!UnionIsAlly(unionID, targetData.UnionID)) return (int)EAlly.EFail; if (!UnionIsAlly(targetID, unionID)) return (int)EAlly.EFail; bool isDelResult = AllyPersistence.Instance.DBAllyDel(unionID, targetID); if (!isDelResult) return (int)EAlly.EFail; DateTime logTime = DateTime.Now; int logState = (int)EAlly.AllyRemoveSucc; //my if (!isDel) _allyDic[unionID].Remove(targetID); //ClientAgentManager.Instance().PostAsyncEvent(serverID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyRemove, unionID, targetID)); AllyLogData logData = new AllyLogData(); logData.UnionID = targetData.UnionID; logData.UnionZoneID = targetData.UnionZoneID; logData.UnionName = targetData.UnionName; logData.MyUnionID = unionID; logData.LogTime = logTime; logData.LogState = logState; ClientAgentManager.Instance().PostAsyncEvent(serverID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyLog, unionID, new List<AllyLogData>() { logData })); //target if (_allyDic.ContainsKey(targetData.UnionID)) _allyDic[targetData.UnionID].Remove(unionID); KFAllyData myData = GetUnionData(unionID); logData = new AllyLogData(); logData.UnionID = myData.UnionID; logData.UnionZoneID = myData.UnionZoneID; logData.UnionName = myData.UnionName; logData.MyUnionID = targetID; logData.LogTime = logTime; logData.LogState = (int)EAlly.AllyRemoveSuccOther; if (IsAgent(targetData.ServerID)) { ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyRemove, targetID, unionID)); ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyLog, targetID, new List<AllyLogData>() { logData })); } else { AllyPersistence.Instance.DBAllyLogAdd(logData); } ClientAgentManager.Instance().KFBroadCastAsyncEvent(_gameType, new AsyncDataItem(KuaFuEventTypes.KFAllyRemove, targetID, unionID)); return (int)EAlly.AllyRemoveSucc; } }
//Refuse public int OperateRefuse(int serverID, int unionID, int targetID, bool isDel = false) { lock (_Mutex) { KFAllyData targetData = GetUnionData(targetID); if (targetData == null) return (int)EAlly.ENoTargetUnion; if (!UnionIsAccept(unionID, targetID)) return (int)EAlly.EFail; if (!UnionIsRequest(targetID, unionID)) return (int)EAlly.EFail; bool isDelResult = AllyPersistence.Instance.DBAllyRequestDel(targetID, unionID); if (!isDelResult) return (int)EAlly.EFail; DateTime logTime = DateTime.Now; int logState = (int)EAlly.AllyRefuse; //my KFAllyData rData = GetAcceptData(unionID, targetID); if (!isDel) _acceptDic[unionID].Remove(rData); ClientAgentManager.Instance().PostAsyncEvent(serverID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyAcceptRemove, unionID, targetID)); //target if (_requestDic.ContainsKey(targetID)) { KFAllyData aData = GetRequestData(targetID, unionID); _requestDic[targetID].Remove(aData); } KFAllyData myData = GetUnionData(unionID); AllyLogData logData = new AllyLogData(); logData.UnionID = myData.UnionID; logData.UnionZoneID = myData.UnionZoneID; logData.UnionName = myData.UnionName; logData.MyUnionID = targetID; logData.LogTime = logTime; logData.LogState = (int)EAlly.AllyRefuseOther; if (IsAgent(targetData.ServerID)) { ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyRequestRemove, targetID, unionID)); ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyLog, targetID, new List<AllyLogData>() { logData })); } else { AllyPersistence.Instance.DBAllyLogAdd(logData); } return (int)EAlly.AllyRefuse; } }
public bool DBAllyLogAdd(AllyLogData logData, int serverID) { return(Global.sendToDB <bool, AllyLogData>(13123, logData, serverID)); }
//Agree public int OperateAgree(int serverID, int unionID, int targetID) { lock (_Mutex) { KFAllyData targetData = GetUnionData(targetID); if (targetData == null) return (int)EAlly.ENoTargetUnion; if (!UnionIsAccept(unionID, targetID)) return (int)EAlly.EFail; if (!UnionIsRequest(targetID, unionID)) return (int)EAlly.EFail; //num int sum = _allyDic[unionID].Count + _requestDic[unionID].Count; if (sum >= Consts.AllyNumMax) return (int)EAlly.EAllyMax; DateTime logTime = DateTime.Now; int logState = (int)EAlly.AllyAgree; bool isDB = AllyPersistence.Instance.DBAllyRequestDel(targetID, unionID); if (!isDB) return (int)EAlly.EFail; isDB = AllyPersistence.Instance.DBAllyAdd(unionID, targetID, logTime); if (!isDB) return (int)EAlly.EFail; //my KFAllyData aData = GetAcceptData(unionID, targetID); _acceptDic[unionID].Remove(aData); ClientAgentManager.Instance().PostAsyncEvent(serverID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyAcceptRemove, unionID, targetID)); _allyDic[unionID].Add(targetID); aData.LogTime = logTime; aData.LogState = logState; AllyData clientMy = new AllyData(); clientMy.Copy(aData); ClientAgentManager.Instance().PostAsyncEvent(serverID, _gameType, new AsyncDataItem(KuaFuEventTypes.Ally, unionID, clientMy, false)); //target if (_requestDic.ContainsKey(targetID)) { KFAllyData rData = GetRequestData(targetID, unionID); _requestDic[targetID].Remove(rData); } if (_allyDic.ContainsKey(targetID)) _allyDic[targetID].Add(unionID); KFAllyData myData = GetUnionData(unionID); myData.LogTime = logTime; myData.LogState = logState; AllyLogData logData = new AllyLogData(); logData.UnionID = myData.UnionID; logData.UnionZoneID = myData.UnionZoneID; logData.UnionName = myData.UnionName; logData.MyUnionID = targetID; logData.LogTime = logTime; logData.LogState = (int)EAlly.AllyAgreeOther; AllyData clientTarget = new AllyData(); clientTarget.Copy(myData); if (IsAgent(targetData.ServerID)) { ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.Ally, targetID, clientTarget, true)); ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyRequestRemove, targetID, unionID)); ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyLog, targetID, new List<AllyLogData>() { logData })); } else { AllyPersistence.Instance.DBAllyLogAdd(logData); } ClientAgentManager.Instance().KFBroadCastAsyncEvent(_gameType, new AsyncDataItem(KuaFuEventTypes.KFAlly, clientMy, clientTarget)); return (int)EAlly.AllyAgree; } }
public AllyData AllyRequest(int serverID, int unionID, int zoneID, string unionName) { lock (_Mutex) { AllyData clientRequest = new AllyData(); if (!IsAgent(serverID)) { clientRequest.LogState = (int)EAlly.EServer; return clientRequest; } KFAllyData targetData = GetUnionData(zoneID, unionName); if (targetData == null) { clientRequest.LogState = (int)EAlly.EName; return clientRequest; } InitAllyIDList(targetData.UnionID); InitAllyRequestList(targetData.UnionID); InitAllyAcceptList(targetData.UnionID); if (UnionIsAlly(unionID, targetData.UnionID)) { clientRequest.LogState = (int)EAlly.EIsAlly; return clientRequest; } if (UnionIsRequest(unionID, targetData.UnionID) || UnionIsAccept(targetData.UnionID, unionID)) { clientRequest.LogState = (int)EAlly.EMore; return clientRequest; } int sum = _allyDic[unionID].Count + _requestDic[unionID].Count; if (sum >= Consts.AllyNumMax) { clientRequest.LogState = (int)EAlly.EAllyMax; return clientRequest; } DateTime logTime = DateTime.Now; int logState = (int)EAlly.AllyRequestSucc; bool isAdd = AllyPersistence.Instance.DBAllyRequestAdd(unionID, targetData.UnionID, logTime, logState); if (!isAdd) { clientRequest.LogState = (int)EAlly.EAllyRequest; return clientRequest; } //my KFAllyData myData = GetUnionData(unionID); AllyLogData logData = new AllyLogData(); logData.UnionID = targetData.UnionID; logData.UnionZoneID = targetData.UnionZoneID; logData.UnionName = targetData.UnionName; logData.MyUnionID = unionID; logData.LogTime = logTime; logData.LogState = logState; ClientAgentManager.Instance().PostAsyncEvent(serverID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyLog, unionID, new List<AllyLogData>() { logData })); KFAllyData requestData = new KFAllyData(); requestData.Copy(targetData); requestData.LogState = logState; requestData.LogTime = logTime; requestData.UpdateLogtime(); AllyRequestAdd(unionID, requestData); clientRequest.Copy(requestData); // ClientAgentManager.Instance().PostAsyncEvent(serverID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyRequest, unionID, clientRequest)); //target KFAllyData acceptData = new KFAllyData(); acceptData.Copy(myData); acceptData.LogState = logState; acceptData.LogTime = logTime; AllyAcceptAdd(targetData.UnionID, acceptData); if (IsAgent(targetData.ServerID)) { AllyData clientAccept = new AllyData(); clientAccept.Copy(acceptData); ClientAgentManager.Instance().PostAsyncEvent(targetData.ServerID, _gameType, new AsyncDataItem(KuaFuEventTypes.AllyAccept, targetData.UnionID, clientAccept)); } return clientRequest; } }
public bool DBAllyLogAdd(AllyLogData logData, int serverID) { return(Global.sendToDB <bool, AllyLogData>((int)TCPGameServerCmds.CMD_DB_UNION_ALLY_LOG_ADD, logData, serverID)); }