167 lines
6.8 KiB
C#
167 lines
6.8 KiB
C#
// 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);
|
|
// }
|
|
// }
|