using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using GameServer; namespace GameServer { public static class UserBusinessLogHelper { public static UserLogInfo toUserLogInfo(this Player loginPlayer) { var log_info = new UserLogInfo(); log_info.setLogInfo(loginPlayer); return log_info; } //===================================================================================== // 비즈니스 로그 주요 함수 //===================================================================================== public static void setLogInfo(this UserLogInfo log, Player player) { var net_server = GameServerApp.getServerLogic().getProudNetListener().getNetServer(); var game_login_action = player.getEntityAction(); NullReferenceCheckHelper.throwIfNull(game_login_action, () => $"game_login_action is null !!! - {player.toBasicString()}"); var account_attribute = player.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(account_attribute, () => $"account_attribute is null !!! - {player.toBasicString()}"); var user_attribute = player.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(user_attribute, () => $"user_attribute is null !!! - {player.toBasicString()}"); var nickname_attribute = player.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(nickname_attribute, () => $"nickname_attribute is null !!! - {player.toBasicString()}"); var level_attribute = player.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(level_attribute, () => $"level_attribute is null !!! - {player.toBasicString()}"); var money_attribute = player.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(money_attribute, () => $"money_attribute is null !!! - {player.toBasicString()}"); var user_pk = string.Empty; var user_sk = string.Empty; (var result, var user_base_doc) = user_attribute.toDocBase(false).GetAwaiter().GetResult(); if (result.isFail()) { var err_msg = $"Failed to toDocBase() !!!, in UserBusinessLogHelper.setLogInfo() : {result.toBasicString()} - {user_attribute.toBasicString()}"; Log.getLogger().error(err_msg); } else { NullReferenceCheckHelper.throwIfNull(user_base_doc, () => $"user_base_doc is null !!! - {player.toBasicString()}"); user_pk = user_base_doc.getPK(); user_sk = user_base_doc.getSK(); } log.setLogProperty( player.getUserGuid() , user_pk , user_sk , account_attribute.LanguageType , nickname_attribute.Nickname , level_attribute.Level , money_attribute.Gold , money_attribute.Sapphire , money_attribute.Calium , 0 //Chat Ai 서버에 Beam 조회 Api 를 호출하여 Beam 값을 얻어온다. - kangms , money_attribute.Ruby , user_attribute.SelectedCharacterGuid ); } } }