초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,297 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ServerCore;
using ServerBase;
using SESSION_ID = System.Int32;
using META_ID = System.UInt32;
using ENTITY_GUID = System.String;
using ACCOUNT_ID = System.String;
using OWNER_GUID = System.String;
using USER_GUID = System.String;
using CHARACTER_GUID = System.String;
using ITEM_GUID = System.String;
using NICKNAME = System.String;
namespace ServerCommon;
public class UserByAccountIdResult
{
public string UserGuid { get; set; } = null!;
public string Nickname { get; set; } = null!;
}
public class UserInfoByUserNickname
{
public USER_GUID UserGuid { get; set; } = string.Empty;
public NICKNAME UserNickname { get; set; } = string.Empty;
}
public class UgcNpcInfoByUgcNpcNickname
{
public UgcNpcAttrib UgcNpcAttrib { get; set; } = null!;
}
public static class EntitySearchHelper
{
public static async Task<(Result, UserByAccountIdResult?)> findUserByAccountId(DynamoDbClient dynamoDbClient, ACCOUNT_ID accountId, string tryUserEmailId)
{
var result = new Result();
var err_msg = string.Empty;
if(true == accountId.isNullOrWhiteSpace())
{
err_msg = $"Invalid AccountId !!! - tryUserEmailId:{tryUserEmailId}";
result.setFail(ServerErrorCode.AccountIdInvalid, err_msg);
Log.getLogger(result.toBasicString());
return (result, null);
}
(result, var found_account_doc) = await AccountBaseDoc.findUserGuidFromAccountId(dynamoDbClient, accountId);
if(result.isFail())
{
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(found_account_doc, () => $"found_account_doc is null !!! - AccountId:{accountId}, tryUserEmailId:{tryUserEmailId}");
var doc_account_base_attrib = found_account_doc.getAttrib<AccountBaseAttrib>();
NullReferenceCheckHelper.throwIfNull(doc_account_base_attrib, () => $"doc_account_base_attrib is null !!! - AccountId:{accountId}, tryUserEmailId:{tryUserEmailId}");
var user_guid = doc_account_base_attrib.UserGuid;
if (true == user_guid.isNullOrWhiteSpace())
{
err_msg = $"Account without UserGuid !!! - AccountId:{accountId}, tryUserEmailId:{tryUserEmailId}";
result.setFail(ServerErrorCode.AccountWithoutUserGuid, err_msg);
Log.getLogger(result.toBasicString());
return (result, null);
}
string found_nickname = string.Empty;
(result, var found_nickname_attrib) = await NicknameDoc.findNicknameFromGuid(dynamoDbClient, user_guid);
if(result.isFail())
{
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(found_nickname_attrib, () => $"found_nickname_attrib is null !!!, userGuid:{user_guid} - AccountId:{accountId}, tryUserEmailId:{tryUserEmailId}");
found_nickname = found_nickname_attrib.Nickname;
return (result, new UserByAccountIdResult
{
UserGuid = user_guid,
Nickname = found_nickname,
});
}
public static async Task<(Result, List<UgcNpcAttrib>?)> findUgcNpcAttribAllByUserGuid(DynamoDbClient dynamoDbClient, USER_GUID userGuid, string tryUserEmailId)
{
var result = new Result();
var err_msg = string.Empty;
if (true == userGuid.isNullOrWhiteSpace())
{
err_msg = $"Invalid UserGuid !!! - tryUserEmailId:{tryUserEmailId}";
result.setFail(ServerErrorCode.UserGuidInvalid, err_msg);
Log.getLogger(result.toBasicString());
return (result, null);
}
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<UgcNpcDoc>(userGuid);
if (result.isFail())
{
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - UserGuid:{userGuid}, tryUserEmailId:{tryUserEmailId}");
var query_config = dynamoDbClient.makeQueryConfigForReadByPKOnly(make_primary_key.PK);
(result, var found_ugc_npc_docs) = await dynamoDbClient.simpleQueryDocTypesWithQueryOperationConfig<UgcNpcDoc>(query_config);
if (result.isFail())
{
err_msg = $"Failed to simpleQueryDocTypeWithQueryOperationConfig() !!! : {result.toBasicString()}, {make_primary_key.toBasicString()}";
Log.getLogger().error(err_msg);
return (result, null);
}
var found_ugc_npc_attribs = new List<UgcNpcAttrib>();
foreach(var doc in found_ugc_npc_docs)
{
var ugc_npc_attrib = doc.getAttrib<UgcNpcAttrib>();
NullReferenceCheckHelper.throwIfNull(ugc_npc_attrib, () => $"ugc_npc_attrib is null !!! - UserGuid:{userGuid}, tryUserEmailId:{tryUserEmailId}");
found_ugc_npc_attribs.Add(ugc_npc_attrib);
}
return (result, found_ugc_npc_attribs);
}
public static async Task<(Result, UserInfoByUserNickname?)> findUserInfoByUserNickname(DynamoDbClient dynamoDbClient, NICKNAME userNickname)
{
var result = new Result();
var err_msg = string.Empty;
if (true == userNickname.isNullOrWhiteSpace())
{
err_msg = $"Empty UserNickname !!!";
result.setFail(ServerErrorCode.UserNicknameEmpty, err_msg);
Log.getLogger(result.toBasicString());
return (result, null);
}
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<UserNicknameRegistryDoc>(DynamoDbClient.PK_GLOBAL, userNickname);
if (result.isFail())
{
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - userNickname:{userNickname}");
var query_config = dynamoDbClient.makeQueryConfigForReadByPKSK(make_primary_key.PK, make_primary_key.SK);
(result, var found_user_nickname_doc) = await dynamoDbClient.simpleQueryDocTypeWithQueryOperationConfig<UserNicknameRegistryDoc>(query_config);
if (result.isFail())
{
err_msg = $"Failed to simpleQueryDocTypeWithQueryOperationConfig() !!! : {result.toBasicString()}, {make_primary_key.toBasicString()}";
Log.getLogger().error(err_msg);
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(found_user_nickname_doc, () => $"found_user_nickname_doc is null !!! - userNickname:{userNickname}");
var user_nickname_registry_attrib = found_user_nickname_doc.getAttrib<UserNicknameRegistryAttrib>();
NullReferenceCheckHelper.throwIfNull(user_nickname_registry_attrib, () => $"user_nickname_registry_attrib is null !!! - userNickname:{userNickname}");
var searched_result = new UserInfoByUserNickname();
searched_result.UserNickname = user_nickname_registry_attrib.Nickname;
searched_result.UserGuid = user_nickname_registry_attrib.UserGuid;
return (result, searched_result);
}
public static async Task<(Result, UgcNpcInfoByUgcNpcNickname?)> findUgcNpcInfoByUgcNpcNickname( DynamoDbClient dynamoDbClient
, OwnerEntityType ownerEntityType, OWNER_GUID ownerGuid
, NICKNAME ugcNpcNickname )
{
var result = new Result();
var err_msg = string.Empty;
if (true == ugcNpcNickname.isNullOrWhiteSpace())
{
err_msg = $"Empty UgcNpcNickname !!!";
result.setFail(ServerErrorCode.UgcNpcNicknameEmpty, err_msg);
Log.getLogger(result.toBasicString());
return (result, null);
}
UgcNpcNicknameRegistryDoc? found_ugc_nickname_registry_doc = null;
{
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<UgcNpcNicknameRegistryDoc>(ownerGuid, ugcNpcNickname);
if (result.isFail())
{
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - userGuid:{ownerGuid}, userNickname:{ugcNpcNickname}");
var query_config = dynamoDbClient.makeQueryConfigForReadByPKSK(make_primary_key.PK, make_primary_key.SK);
(result, found_ugc_nickname_registry_doc) = await dynamoDbClient.simpleQueryDocTypeWithQueryOperationConfig<UgcNpcNicknameRegistryDoc>(query_config);
if (result.isFail())
{
err_msg = $"Failed to simpleQueryDocTypeWithQueryOperationConfig() !!! : {result.toBasicString()}, {make_primary_key.toBasicString()}";
Log.getLogger().error(err_msg);
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(found_ugc_nickname_registry_doc, () => $"found_ugc_nickname_registry_doc is null !!! - userGuid:{ownerGuid}, userNickname:{ugcNpcNickname}");
}
var ugc_npc_nickname_registry_attrib = found_ugc_nickname_registry_doc.getAttrib<UgcNpcNicknameRegistryAttrib>();
NullReferenceCheckHelper.throwIfNull(ugc_npc_nickname_registry_attrib, () => $"ugc_npc_nickname_registry_attrib is null !!! - userGuid:{ownerGuid}, userNickname:{ugcNpcNickname}");
UgcNpcDoc? found_ugc_npc_doc = null;
{
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<UgcNpcDoc>(ownerGuid, ugc_npc_nickname_registry_attrib.UgcNpcMetaGuid);
if (result.isFail())
{
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - userGuid:{ownerGuid}, userNickname:{ugcNpcNickname}");
var query_config = dynamoDbClient.makeQueryConfigForReadByPKSK(make_primary_key.PK, make_primary_key.SK);
(result, found_ugc_npc_doc) = await dynamoDbClient.simpleQueryDocTypeWithQueryOperationConfig<UgcNpcDoc>(query_config);
if (result.isFail())
{
err_msg = $"Failed to simpleQueryDocTypeWithQueryOperationConfig() !!! : {result.toBasicString()}, {make_primary_key.toBasicString()}";
Log.getLogger().error(err_msg);
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(found_ugc_npc_doc, () => $"found_ugc_npc_doc is null !!! - userGuid:{ownerGuid}, userNickname:{ugcNpcNickname}");
}
var ugc_npc_attrib = found_ugc_npc_doc.getAttrib<UgcNpcAttrib>();
NullReferenceCheckHelper.throwIfNull(ugc_npc_attrib, () => $"ugc_npc_attrib is null !!! - userGuid:{ownerGuid}, userNickname:{ugcNpcNickname}");
var searched_result = new UgcNpcInfoByUgcNpcNickname();
if(null != ugc_npc_attrib)
{
searched_result.UgcNpcAttrib = ugc_npc_attrib;
}
return (result, searched_result);
}
public static async Task<(Result, MoneyAttrib?)> findUserMoneyByUserGuid(DynamoDbClient dynamoDbClient, USER_GUID userGuid)
{
var result = new Result();
var err_msg = string.Empty;
if (true == userGuid.isNullOrWhiteSpace())
{
err_msg = $"Invalid UserGuid !!!";
result.setFail(ServerErrorCode.UserGuidInvalid, err_msg);
Log.getLogger(result.toBasicString());
return (result, null);
}
(result, var make_primary_key) = await DynamoDBDocBaseHelper.makePrimaryKey<MoneyDoc>(userGuid);
if (result.isFail())
{
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(make_primary_key, () => $"make_primary_key is null !!! - userGuid:{userGuid}");
var query_config = dynamoDbClient.makeQueryConfigForReadByPKOnly(make_primary_key.PK);
(result, var found_money_doc) = await dynamoDbClient.simpleQueryDocTypeWithQueryOperationConfig<MoneyDoc>(query_config);
if (result.isFail())
{
err_msg = $"Failed to simpleQueryDocTypeWithQueryOperationConfig() !!! : {result.toBasicString()}, {make_primary_key.toBasicString()}";
Log.getLogger().error(err_msg);
return (result, null);
}
NullReferenceCheckHelper.throwIfNull(found_money_doc, () => $"found_money_doc is null !!! - userGuid:{userGuid}");
var money_attrib = found_money_doc.getAttrib<MoneyAttrib>();
if(money_attrib == null)
{
err_msg = $"money_attrib is null !!! - UserGuid:{userGuid} !!! {result.toBasicString()}, {make_primary_key.toBasicString()}";
result.setFail(ServerErrorCode.UserMoneyDocEmpty, err_msg);
Log.getLogger().error(err_msg);
return (result, null);
}
return (result, money_attrib);
}
}