using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer; public static class PartyBusinessLogHelper { public static PartyLogData toPartyLogData(string partyGuid, bool isCreate) { var global_party = GameServerApp.getServerLogic().findGlobalEntity(); ArgumentNullException.ThrowIfNull(global_party); var party = global_party.getParty(partyGuid); if (null == party) return new PartyLogData { PartyGuid = partyGuid }; var party_attribute = party.getEntityAttribute(); var party_member_action = party.getEntityAction(); ArgumentNullException.ThrowIfNull(party_attribute); ArgumentNullException.ThrowIfNull(party_member_action); var party_log_data = new PartyLogData(); party_log_data.PartyGuid = party.PartyGuid; party_log_data.PartyName = party_attribute.PartyName; party_log_data.PartyLeaderCharGuid = party_attribute.PartyLeaderCharGuid; party_log_data.PartyMemberCount = (isCreate) ? 1 : party_member_action.getMemberCount(); party_log_data.CreatePartyTime = party_attribute.CreatePartyTime; return party_log_data; } public static PartyMemberLogData toPartyMemberLogData(string partyGuid, string userGuid, PartyMemberActionType actionType) { var log_data = new PartyMemberLogData(); log_data.PartyGuid = partyGuid; log_data.UserGuid = userGuid; log_data.PartyMemberActionType = actionType; log_data.PartyMemberActionTime = DateTimeHelper.Current; return log_data; } public static PartyVoteLogData toPartyVoteLogData(string partyGuid, bool isStart) { var global_party = GameServerApp.getServerLogic().findGlobalEntity(); ArgumentNullException.ThrowIfNull(global_party); var party = global_party.getParty(partyGuid); if (null == party) return new PartyVoteLogData { PartyGuid = partyGuid }; var party_detail_action = party.getEntityAction(); ArgumentNullException.ThrowIfNull(party_detail_action); var party_vote = party_detail_action.getPartyVoteInfo(); if(null == party_vote) return new PartyVoteLogData { PartyGuid = partyGuid }; var log_data = new PartyVoteLogData(); log_data.PartyGuid = partyGuid; log_data.VoteTitle = party_vote.VoteTitle; log_data.StartVoteTime = party_vote.StartVoteTime.ToDateTime(); if (isStart) return log_data; log_data.EndVoteTime = DateTimeHelper.Current; var vote_result = new VoteResult(); foreach (var vote in party_vote.Votes) { switch (vote.Value) { case VoteType.Agreement: vote_result.Agree += 1; break; case VoteType.DisAgreement: vote_result.DisAgree += 1; break; default: vote_result.Abstain += 1; break; } } log_data.VoteResult = vote_result; return log_data; } public static PartyInstanceLogData toPartyInstanceLogData(string partyGuid, bool isCreate) { var global_party = GameServerApp.getServerLogic().findGlobalEntity(); ArgumentNullException.ThrowIfNull(global_party); var party = global_party.getParty(partyGuid); if (null == party) return new PartyInstanceLogData { PartyGuid = partyGuid }; var party_instance_attribute = party.getEntityAttribute(); ArgumentNullException.ThrowIfNull(party_instance_attribute); var log_data = new PartyInstanceLogData(); log_data.PartyGuid = partyGuid; log_data.InstanceId = party_instance_attribute.InstanceId; log_data.InstanceRoomId = party_instance_attribute.RoomId; log_data.JoinMemberCount = party_instance_attribute.JoinMemberCount; log_data.CreateTime = DateTimeHelper.Current; log_data.StartTime = party_instance_attribute.StartTime.ToDateTime(); if (false == isCreate) { log_data.EndTime = party_instance_attribute.EndTime.ToDateTime(); } return log_data; } }