feat: Implement user permission checks and manual payment functionalities
- Added CheckUserPermissionQuery and CheckUserPermissionQueryHandler for permission validation. - Introduced GetUserRolesQuery and GetUserRolesQueryHandler to retrieve user roles. - Created IPermissionService interface and its implementation in PermissionService. - Defined permission and role constants in PermissionDefinitions. - Developed SetDefaultVatPercentageCommand and its handler for VAT configuration. - Implemented GetCurrentVatPercentageQuery and handler to fetch current VAT settings. - Added manual payment commands: CreateManualPayment, ApproveManualPayment, and RejectManualPayment with respective handlers and validators. - Created GetManualPaymentsQuery and handler for retrieving manual payment records. - Integrated gRPC services for manual payments with appropriate permission checks. - Established Protobuf definitions for manual payment operations and metadata.
This commit is contained in:
-50
@@ -15,53 +15,3 @@ public class CancelOrderCommandValidator : AbstractValidator<CancelOrderCommand>
|
||||
.WithMessage("دلیل لغو سفارش الزامی است");
|
||||
}
|
||||
}
|
||||
|
||||
*** Add File: BackOffice.BFF/src/BackOffice.BFF.Application/UserOrderCQ/Commands/CancelOrder/CancelOrderCommandHandler.cs
|
||||
using BackOffice.BFF.Application.Common.Interfaces;
|
||||
using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder;
|
||||
using CMSMicroservice.Protobuf.Protos.UserOrder;
|
||||
using MediatR;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace BackOffice.BFF.Application.UserOrderCQ.Commands.CancelOrder;
|
||||
|
||||
public class CancelOrderCommandHandler : IRequestHandler<CancelOrderCommand, CancelOrderResponse>
|
||||
{
|
||||
private readonly IApplicationContractContext _context;
|
||||
private readonly ILogger<CancelOrderCommandHandler> _logger;
|
||||
|
||||
public CancelOrderCommandHandler(
|
||||
IApplicationContractContext context,
|
||||
ILogger<CancelOrderCommandHandler> logger)
|
||||
{
|
||||
_context = context;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task<CancelOrderResponse> Handle(CancelOrderCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
var grpcRequest = new CMSMicroservice.Protobuf.Protos.UserOrder.CancelOrderRequest
|
||||
{
|
||||
OrderId = request.OrderId,
|
||||
CancelReason = request.CancelReason ?? string.Empty,
|
||||
RefundPayment = request.RefundPayment
|
||||
};
|
||||
|
||||
var response = await _context.UserOrders.CancelOrderAsync(grpcRequest, cancellationToken: cancellationToken);
|
||||
|
||||
_logger.LogInformation(
|
||||
"Cancelled order {OrderId}. Status={Status} RefundProcessed={RefundProcessed}",
|
||||
response.OrderId,
|
||||
response.Status,
|
||||
response.RefundProcessed);
|
||||
|
||||
return new CancelOrderResponse
|
||||
{
|
||||
OrderId = response.OrderId,
|
||||
Status = (int)response.Status,
|
||||
Message = response.Message,
|
||||
RefundProcessed = response.RefundProcessed
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
@@ -43,4 +43,8 @@ public class GetAllUserOrderByFilterResponseModel
|
||||
public string? UserNationalCode { get; set; }
|
||||
// روش پرداخت (0=IPG,1=Wallet)
|
||||
public int PaymentMethod { get; set; }
|
||||
// مبلغ مالیات بر ارزش افزوده (ریال)
|
||||
public long VatAmount { get; set; }
|
||||
// درصد مالیات بر ارزش افزوده (مثلاً 9 برای 9٪)
|
||||
public double VatPercentage { get; set; }
|
||||
}
|
||||
|
||||
+8
@@ -36,6 +36,14 @@ public class GetUserOrderResponseDto
|
||||
public string? UserFullName { get; set; }
|
||||
// کدملی کاربر
|
||||
public string? UserNationalCode { get; set; }
|
||||
// مبلغ پایه (قبل از مالیات)
|
||||
public long VatBaseAmount { get; set; }
|
||||
// مبلغ مالیات بر ارزش افزوده (ریال)
|
||||
public long VatAmount { get; set; }
|
||||
// مبلغ نهایی (شامل مالیات)
|
||||
public long VatTotalAmount { get; set; }
|
||||
// درصد مالیات بر ارزش افزوده (مثلاً 9 برای 9٪)
|
||||
public double VatPercentage { get; set; }
|
||||
}
|
||||
|
||||
public class GetUserOrderResponseFactorDetail
|
||||
|
||||
Reference in New Issue
Block a user