Files
caliverse_server/GameServer/Contents/UserCreateOrLoading/Helper/UserBusinessLogHelper.cs
2025-05-01 07:20:41 +09:00

86 lines
3.5 KiB
C#

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<GameLoginAction>();
NullReferenceCheckHelper.throwIfNull(game_login_action, () => $"game_login_action is null !!! - {player.toBasicString()}");
var account_attribute = player.getEntityAttribute<AccountAttribute>();
NullReferenceCheckHelper.throwIfNull(account_attribute, () => $"account_attribute is null !!! - {player.toBasicString()}");
var user_attribute = player.getEntityAttribute<UserAttribute>();
NullReferenceCheckHelper.throwIfNull(user_attribute, () => $"user_attribute is null !!! - {player.toBasicString()}");
var nickname_attribute = player.getEntityAttribute<NicknameAttribute>();
NullReferenceCheckHelper.throwIfNull(nickname_attribute, () => $"nickname_attribute is null !!! - {player.toBasicString()}");
var level_attribute = player.getEntityAttribute<LevelAttribute>();
NullReferenceCheckHelper.throwIfNull(level_attribute, () => $"level_attribute is null !!! - {player.toBasicString()}");
var money_attribute = player.getEntityAttribute<MoneyAttribute>();
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
);
}
}
}