| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using Application.Abstractions.Data;
- using Application.Abstractions.Messaging;
- using Microsoft.EntityFrameworkCore;
- using SharedKernel.Results;
- namespace Application.Features.Admin.Store.Settlement.Get;
- public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Result<Response>>
- {
- public async Task<Result<Response>> Handle(Query request, CancellationToken ct)
- {
- var row = await db.GameSettlement
- .AsNoTracking()
- .Include(s => s.Game)
- .Where(s => s.ID == request.ID)
- .Select(s => new
- {
- s.ID,
- s.GameID,
- GameName = s.Game!.KorName,
- GamePublisher = s.Game.Publisher,
- GameCommissionRate = s.Game.CommissionRate,
- s.Year,
- s.Month,
- s.TotalRevenueAmount,
- s.OrderCount,
- s.Status,
- s.CreatedAt,
- s.SettledAt,
- s.SettledByAdminUserId,
- s.SettledByAdminEmail,
- s.AdminMemo
- })
- .FirstOrDefaultAsync(ct);
- if (row is null)
- {
- return Result.Failure<Response>(Error.NotFound("GameSettlement.NotFound", "정산 정보를 찾을 수 없습니다."));
- }
- return Result.Success(new Response(
- row.ID,
- row.GameID,
- row.GameName,
- row.GamePublisher,
- row.GameCommissionRate,
- row.Year,
- row.Month,
- row.TotalRevenueAmount,
- row.OrderCount,
- row.Status,
- row.CreatedAt,
- row.SettledAt,
- row.SettledByAdminUserId,
- row.SettledByAdminEmail,
- row.AdminMemo
- ));
- }
- }
|