초기커밋

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,51 @@
using ServerCommon;
using ServerCore; using ServerBase;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameServer
{
internal class BuildingRentalHistoryAction : EntityActionBase
{
public BuildingRentalHistoryAction(BuildingRentalHistory owner)
: base(owner)
{ }
public override async Task<Result> onInit()
{
var result = new Result();
return await Task.FromResult(result);
}
public override void onClear()
{
return;
}
public Result tryLoadBuildingRentalHistoryFromDoc(BuildingRentalHistoryDoc buildingRentalHistoryDoc)
{
var result = new Result();
var err_msg = string.Empty;
var building_rental_history = getOwner() as BuildingRentalHistory;
NullReferenceCheckHelper.throwIfNull(building_rental_history, () => $"building_rental_history is null !!!");
var building_rental_history_attribute = building_rental_history.getEntityAttribute<BuildingRentalHistoryAttribute>();
NullReferenceCheckHelper.throwIfNull(building_rental_history_attribute, () => $"building_rental_history_attribute is null !!!");
if (!building_rental_history_attribute.copyEntityAttributeFromDoc(buildingRentalHistoryDoc))
{
err_msg = $"Failed to copyEntityAttributeFromDoc() !!! to:{building_rental_history_attribute.getTypeName()}, from:{buildingRentalHistoryDoc.getTypeName()} : {this.getTypeName()}";
result.setFail(ServerErrorCode.DynamoDbDocCopyToEntityAttributeFailed, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
return result;
}
}
}

View File

@@ -0,0 +1,110 @@
using ServerCommon;
using ServerCore; using ServerBase;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameServer
{
internal class BuildingRentalHistoryAgentAction : EntityActionBase
{
ConcurrentBag<BuildingRentalHistory> m_building_rental_historys = new();
public BuildingRentalHistoryAgentAction(Building owner)
: base(owner)
{ }
public override async Task<Result> onInit()
{
var result = new Result();
return await Task.FromResult(result);
}
public override void onClear()
{
return;
}
public async Task<Result> tryLoadBuildingRentalHistoryFromDb(int buildingMetaId)
{
var result = new Result();
var err_msg = string.Empty;
var server_logic = GameServerApp.getServerLogic();
var db_client = server_logic.getDynamoDbClient();
var doc = new BuildingRentalHistoryDoc();
doc.setCombinationKeyForPK(buildingMetaId.ToString());
var error_code = doc.onApplyPKSK();
if (error_code.isFail())
{
err_msg = $"Failed to onApplyPKSK() !!! : {error_code.toBasicString()}";
result.setFail(error_code, err_msg);
Log.getLogger().error(result.toBasicString());
return result;
}
var query_config = db_client.makeQueryConfigWithPKSKBySKBeginWith(doc.getPK(), BuildingRentalHistoryDoc.getPrefixOfSK());
(result, var read_docs) = await db_client.simpleQueryDocTypesWithQueryOperationConfig<BuildingRentalHistoryDoc>(query_config);
if (result.isFail())
{
err_msg = $"Failed to simpleQueryDocTypesWithQueryOperationConfig() !!! : {result.toBasicString()}";
Log.getLogger().error(err_msg);
return result;
}
var building = getOwner() as Building;
NullReferenceCheckHelper.throwIfNull(building, () => $"building is null !!!");
foreach (var read_doc in read_docs)
{
var building_rental_history = new BuildingRentalHistory(building);
await building_rental_history.onInit();
var building_rental_history_action = building_rental_history.getEntityAction<BuildingRentalHistoryAction>();
NullReferenceCheckHelper.throwIfNull(building_rental_history_action, () => $"building_rental_history_action is null !!!");
result = building_rental_history_action.tryLoadBuildingRentalHistoryFromDoc(read_doc);
if (result.isFail())
{
err_msg = $"Failed to tryLoadBuildingRentalHistoryFromDoc() !!! : {result.toBasicString()}";
Log.getLogger().error(err_msg);
return result;
}
var building_rental_history_attribute = building_rental_history.getEntityAttribute<BuildingRentalHistoryAttribute>();
NullReferenceCheckHelper.throwIfNull(building_rental_history_attribute, () => $"building_rental_history_attribute is null !!!");
m_building_rental_historys.Add(building_rental_history);
}
return result;
}
public async Task<List<BuildingRentalHistoryInfo>> getBuildingRentalHistoryInfos()
{
var building_rental_story_infos = new List<BuildingRentalHistoryInfo>();
foreach (var building_rental_history in m_building_rental_historys)
{
var building_rental_history_info = await building_rental_history.toBuildingRentalHistoryInfo();
building_rental_story_infos.Add(building_rental_history_info);
}
return building_rental_story_infos;
}
public void addBuildingRentalHistory(BuildingRentalHistory buildingRentalHistory)
{
m_building_rental_historys.Add(buildingRentalHistory);
}
}
}

View File

@@ -0,0 +1,36 @@
using ServerCommon;
using ServerCore; using ServerBase;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameServer
{
internal class BuildingRentalHistory : EntityBase
{
public BuildingRentalHistory(Building building)
: base(EntityType.BuildingRentalHistory, building)
{
}
public override async Task<Result> onInit()
{
addEntityAttribute(new BuildingRentalHistoryAttribute(this));
addEntityAction(new BuildingRentalHistoryAction(this));
return await base.onInit();
}
public override string toBasicString()
{
return $"{this.getTypeName()}, BuildingMetaId:{getOriginEntityAttribute<BuildingFloorAttribute>()?.BuildingMetaId}, Floor:{getOriginEntityAttribute<BuildingFloorAttribute>()?.Floor}";
}
public override string toSummaryString()
{
return $"{this.getTypeName()}, {getEntityAttribute<BuildingFloorAttribute>()?.toBasicString()}";
}
}
}

View File

@@ -0,0 +1,68 @@
using Google.Protobuf.WellKnownTypes;
using ServerCommon;
using ServerCore; using ServerBase;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameServer
{
internal static class BuildingRentalHistoryHelper
{
public static async Task<BuildingRentalHistoryInfo> toBuildingRentalHistoryInfo(this BuildingRentalHistory buildingRentalHistory)
{
var result = new Result();
var building_rental_history_attribute = buildingRentalHistory.getEntityAttribute<BuildingRentalHistoryAttribute>();
NullReferenceCheckHelper.throwIfNull(building_rental_history_attribute, () => $"building_rental_history_attribute is null !!!");
var building_rental_history_info = new BuildingRentalHistoryInfo
{
HistoryDate = building_rental_history_attribute.RentalTime.ToTimestamp(),
UserGuid = building_rental_history_attribute.RenteeUserGuid,
RentalPeriod = building_rental_history_attribute.RentalPeriod,
Floor = (int)building_rental_history_attribute.Floor,
};
(result, var nickname_attrib) = await NicknameDoc.findNicknameFromGuid(building_rental_history_attribute.RenteeUserGuid);
if (result.isSuccess() && nickname_attrib != null)
{
building_rental_history_info.UserName = nickname_attrib.Nickname;
}
return building_rental_history_info;
}
public static async Task<(Result, BuildingRentalHistory?, DynamoDbDocBase?)> tryMakeBuildingRentalHistory(Building building, int buildingMetaId, int floor, string userGuid, DateTime rentalTime, int rentalPeriod)
{
var result = new Result();
var err_msg = string.Empty;
var building_rental_history = new BuildingRentalHistory(building);
await building_rental_history.onInit();
var building_rental_history_attribute = building_rental_history.getEntityAttribute<BuildingRentalHistoryAttribute>();
NullReferenceCheckHelper.throwIfNull(building_rental_history_attribute, () => $"building_profit_history_attribute is null !!!");
building_rental_history_attribute.BuildingMetaId = buildingMetaId;
building_rental_history_attribute.Floor = floor;
building_rental_history_attribute.RenteeUserGuid = userGuid;
building_rental_history_attribute.RentalTime = rentalTime;
building_rental_history_attribute.RentalPeriod = rentalPeriod;
building_rental_history_attribute.newEntityAttribute();
(result, var building_rental_history_doc) = await building_rental_history_attribute.toDocBase();
if (result.isFail())
{
err_msg = $"Failed to toDocBase() !!! : {result.toBasicString()}";
Log.getLogger().error(err_msg);
return (result, null, null);
}
return (result, building_rental_history, building_rental_history_doc);
}
}
}

View File

@@ -0,0 +1,40 @@
using Google.Protobuf.WellKnownTypes;
using ServerCommon;
using ServerCore; using ServerBase;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static ServerMessage.Types;
namespace GameServer
{
internal static class BuildingRentalHistoryNotifyHelper
{
public static bool send_GS2GS_NTF_ADD_BUILDING_RENTAL_HISTORY(BuildingRentalHistory buildingProfitHistory)
{
var server_logic = GameServerApp.getServerLogic();
var building_rental_history_attribute = buildingProfitHistory.getEntityAttribute<BuildingRentalHistoryAttribute>();
NullReferenceCheckHelper.throwIfNull(building_rental_history_attribute, () => $"building_profit_history_attribute is null !!!");
var message = new ServerMessage();
message.NtfAddBuildingRentalHistory = new GS2GS_NTF_ADD_BUILDING_RENTAL_HISTORY();
message.NtfAddBuildingRentalHistory.ExceptServerName = server_logic.getServerName();
message.NtfAddBuildingRentalHistory.BuildingMetaId = building_rental_history_attribute.BuildingMetaId;
message.NtfAddBuildingRentalHistory.Floor = building_rental_history_attribute.Floor;
message.NtfAddBuildingRentalHistory.RenteeUserGuid = building_rental_history_attribute.RenteeUserGuid;
message.NtfAddBuildingRentalHistory.RentalTime = building_rental_history_attribute.RentalTime.ToTimestamp();
message.NtfAddBuildingRentalHistory.RentalPeriod = building_rental_history_attribute.RentalPeriod;
var rabbit_mq = server_logic.getRabbitMqConnector() as RabbitMQ4Game;
NullReferenceCheckHelper.throwIfNull(rabbit_mq, () => $"rabbit_mq is null !!!");
rabbit_mq.sendMessageToExchangeAllGame(message);
return true;
}
}
}