초기커밋
This commit is contained in:
119
GameServer/Contents/Party/Helper/PartyBusinessLogHelper.cs
Normal file
119
GameServer/Contents/Party/Helper/PartyBusinessLogHelper.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
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<GlobalParty>();
|
||||
ArgumentNullException.ThrowIfNull(global_party);
|
||||
var party = global_party.getParty(partyGuid);
|
||||
|
||||
if (null == party) return new PartyLogData { PartyGuid = partyGuid };
|
||||
|
||||
var party_attribute = party.getEntityAttribute<PartyAttribute>();
|
||||
var party_member_action = party.getEntityAction<GlobalPartyDetailMemberAction>();
|
||||
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<GlobalParty>();
|
||||
ArgumentNullException.ThrowIfNull(global_party);
|
||||
var party = global_party.getParty(partyGuid);
|
||||
if (null == party) return new PartyVoteLogData { PartyGuid = partyGuid };
|
||||
|
||||
var party_detail_action = party.getEntityAction<GlobalPartyDetailInfoAction>();
|
||||
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<GlobalParty>();
|
||||
ArgumentNullException.ThrowIfNull(global_party);
|
||||
var party = global_party.getParty(partyGuid);
|
||||
|
||||
if (null == party) return new PartyInstanceLogData { PartyGuid = partyGuid };
|
||||
|
||||
var party_instance_attribute = party.getEntityAttribute<PartyInstanceAttribute>();
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user