초기커밋

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,166 @@
// using Asp.Versioning;
//
// using BrokerCore.ApiModels;
// using BrokerCore.Common;
// using BrokerCore.Services;
// using BrokerCore.DbEntity;
//
// using Microsoft.AspNetCore.Mvc;
//
// using Swashbuckle.AspNetCore.Annotations;
//
// namespace BrokerApiServer.Controllers;
//
// using Common;
//
// [ApiVersion("1.0")]
// [Route("api/v1")]
// [ApiController, SwaggerTag("**PlanetUser 항목으로 이전 후 삭제 예정** (3월 말 예정)")]
// // 플래닛에서 b2b로 통신하는 컨트롤러
// public sealed class CurrencyController : PlanetAuthControllerBase
// {
// private readonly SapphireExchangeService m_exchange_service;
//
// public CurrencyController(
// SapphireExchangeService exchangeService)
// {
// m_exchange_service = exchangeService;
// }
//
// [SwaggerIgnore]
// [HttpPost("balance/sapphire"), RequirePlanetAuth]
// [Produces("application/json")]
// [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(SapphireResponse))]
// [ProducesResponseType(StatusCodes.Status400BadRequest, Type = typeof(ApiErrorResponse))]
// [SwaggerOperation(Summary = "사파이어 현재 수량 조회")]
// public async Task<IActionResult> getSapphireBalance(SapphireRequest request)
// {
// await m_exchange_service.authUser(request.UserGuid, this.PlanetId);
//
// var current_sapphire_amount = await m_exchange_service.getCurrentSapphire();
// return Ok(new SapphireResponse { Amount = current_sapphire_amount });
// }
//
// [SwaggerIgnore]
// [HttpPost("exchange/order/list"), RequirePlanetAuth]
// [Produces("application/json")]
// [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(ExchangeOrderListResponse))]
// [ProducesResponseType(StatusCodes.Status400BadRequest, Type = typeof(ApiErrorResponse))]
// [SwaggerOperation(Summary = "사파이어 교환 주문 목록 조회")]
// public async Task<IActionResult> getOrders(
// [SwaggerRequestBody] ExchangeOrderListRequest request,
// CancellationToken cancellationToken)
// {
// var planet_id = this.PlanetId;
// var user_guid = request.UserGuid;
// await m_exchange_service.authUser(user_guid, this.PlanetId);
//
// ExchangeOrderStatus? order_status = request switch
// {
// { Option: FindOption.Completed } => ExchangeOrderStatus.Completed,
// { Option: FindOption.Pending } => ExchangeOrderStatus.Pending,
// _ => null // 전체 조회
// };
// var orders =
// await m_exchange_service.findOrderList(planet_id, user_guid, order_status, request.PageIndex,
// request.PageSize, "desc", cancellationToken);
// var mapped_orders = orders.Select(x => new ExchangeOrder
// {
// OrderId = x.OrderId,
// SapphireAmount = x.SapphireReducedDelta,
// SapphireReduceAmount = x.SapphireReducedDelta,
// EmeraldAmount = x.PlanetMoneyIncDelta,
// CreatedAt = x.CreatedAt,
// CompletedAt = x.CompletedAt,
// Status = x.OrderStatus
// });
// return Ok(new ExchangeOrderListResponse { Orders = mapped_orders });
// }
//
// // [HttpPost("exchange/order/list_for_user"), RequireUserJwtAuth]
// // [Produces("application/json")]
// // [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(ExchangeOrderListResponse))]
// // [ProducesResponseType(StatusCodes.Status400BadRequest, Type = typeof(ApiErrorResponse))]
// // [SwaggerOperation(Summary = "사파이어 교환 주문 목록 조회")]
// // public async Task<IActionResult> getOrdersForUser(
// // [SwaggerRequestBody] ExchangeOrderListRequest request,
// // CancellationToken cancellationToken)
// // {
// // var planet_id = this.PlanetId;
// // var user_guid = request.UserGuid;
// // await m_exchange_service.authUser(user_guid, planet_id);
// //
// // ExchangeOrderStatus? order_status = request switch
// // {
// // { Option: FindOption.Completed } => ExchangeOrderStatus.Completed,
// // { Option: FindOption.Pending } => ExchangeOrderStatus.Pending,
// // _ => null // 전체 조회
// // };
// // var orders =
// // await m_exchange_service.findOrderList(planet_id, user_guid, order_status, request.PageIndex,
// // request.PageSize, request.SortOrder, cancellationToken);
// // var mapped_orders = orders.Select(x => new ExchangeOrder
// // {
// // OrderId = x.OrderId,
// // SapphireAmount = x.SapphireReducedDelta,
// // SapphireReduceAmount = x.SapphireReducedDelta,
// // EmeraldAmount = x.PlanetMoneyIncDelta,
// // CreatedAt = x.CreatedAt,
// // CompletedAt = x.CompletedAt,
// // Status = x.OrderStatus
// // });
// // return Ok(new ExchangeOrderListResponse { Orders = mapped_orders });
// // }
//
// [SwaggerIgnore]
// [HttpPost("exchange/order/create"), RequirePlanetAuth]
// [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(ExchangeOrderResponse))]
// [ProducesResponseType(StatusCodes.Status400BadRequest, Type = typeof(ApiErrorResponse))]
// [SwaggerOperation(Summary = "사파이어 교환 주문 체결 (사파이어 차감)")]
// public async Task<IActionResult> createOrder(
// ExchangeOrderRequest request,
// CancellationToken cancellationToken)
// {
// var user_guid = request.UserGuid;
// await m_exchange_service.authUser(user_guid, this.PlanetId);
// // 메타버스 클라이언트에서 정상적으로
// Guard.Against.isTrue(m_exchange_service.isUserLoggedIn(),
// ServerErrorCode.MetaverseClientOnConnected,
// "메타버스에 접속 중인 상태. 메타버스에서 정상적으로 로그아웃 한 후에 다시 시도 바람.");
//
// var (order, current_sapphire_balance) =
// await m_exchange_service.createOrder(this.PlanetId, this.PlanetServerType, request.Sapphire,
// request.Emerald);
//
// var response = new ExchangeOrderResponse
// {
// OrderId = order.OrderId,
// SapphireAmount = order.SapphireReducedDelta,
// EmeraldAmount = order.PlanetMoneyIncDelta,
// CurrentSapphireBalance = current_sapphire_balance,
// };
// return Ok(response);
// }
//
// [SwaggerIgnore]
// [HttpPost("exchange/order/complete"), RequirePlanetAuth]
// [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(ExchangeOrderCompleteResponse))]
// [ProducesResponseType(StatusCodes.Status400BadRequest, Type = typeof(ApiErrorResponse))]
// [SwaggerOperation(Summary = "사파이어 교환 완료 (완료된 이후에 에메랄드 지급")]
// public async Task<IActionResult> completeOrder(
// ExchangeOrderCompleteRequest request,
// CancellationToken cancellationToken)
// {
// await m_exchange_service.authUser(request.UserGuid, this.PlanetId);
//
// var order = await m_exchange_service.completeOrder(request.OrderId, cancellationToken);
// var response = new ExchangeOrderCompleteResponse
// {
// OrderId = order.OrderId,
// SapphireAmount = order.SapphireReducedDelta,
// EmeraldAmount = order.PlanetMoneyIncDelta,
// Status = order.OrderStatus,
// };
// return Ok(response);
// }
// }