Add payment method and delivery status filters to user order queries

This commit is contained in:
masoodafar-web
2025-11-27 18:59:22 +03:30
parent ebd48c02a5
commit 10035b328b
5 changed files with 73 additions and 2 deletions

View File

@@ -1,10 +1,65 @@
using BackOffice.BFF.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter;
using Google.Protobuf.WellKnownTypes;
using CmsUserOrderFilter = CMSMicroservice.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterFilter;
using CmsUserOrderRequest = CMSMicroservice.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterRequest;
namespace BackOffice.BFF.Application.Common.Mappings;
public class UserOrderProfile : IRegister
{
void IRegister.Register(TypeAdapterConfig config)
{
//config.NewConfig<Source,Destination>()
// .Map(dest => dest.FullName, src => $"{src.Firstname} {src.Lastname}");
config.NewConfig<GetAllUserOrderByFilterQuery, CmsUserOrderRequest>()
.Map(dest => dest.PaginationState, src => src.PaginationState == null ? null : new CMSMicroservice.Protobuf.Protos.PaginationState
{
PageNumber = src.PaginationState.PageNumber,
PageSize = src.PaginationState.PageSize
})
.Map(dest => dest.SortBy, src => src.SortBy)
.Map(dest => dest.Filter, src => src.Filter == null ? null : BuildFilter(src.Filter));
}
private static CmsUserOrderFilter BuildFilter(GetAllUserOrderByFilterFilter src)
{
var filter = new CmsUserOrderFilter();
if (src.Id.HasValue)
filter.Id = src.Id.Value;
if (src.Price.HasValue)
filter.Amount = src.Price.Value;
if (src.PackageId.HasValue)
filter.PackageId = src.PackageId.Value;
if (src.TransactionId.HasValue)
filter.TransactionId = src.TransactionId.Value;
if (src.PaymentDate.HasValue)
{
filter.PaymentDate = Timestamp.FromDateTime(DateTime.SpecifyKind(src.PaymentDate.Value, DateTimeKind.Utc));
}
if (src.UserId.HasValue)
filter.UserId = src.UserId.Value;
if (src.PaymentStatus.HasValue)
{
filter.PaymentStatus = src.PaymentStatus.Value
? CMSMicroservice.Protobuf.Protos.PaymentStatus.Success
: CMSMicroservice.Protobuf.Protos.PaymentStatus.Reject;
}
if (src.DeliveryStatus.HasValue)
{
filter.DeliveryStatus = (CMSMicroservice.Protobuf.Protos.DeliveryStatus)src.DeliveryStatus.Value;
}
if (src.PaymentMethod.HasValue)
{
filter.PaymentMethod = (CMSMicroservice.Protobuf.Protos.PaymentMethod)src.PaymentMethod.Value;
}
return filter;
}
}

View File

@@ -24,4 +24,8 @@ public record GetAllUserOrderByFilterQuery : IRequest<GetAllUserOrderByFilterRes
public DateTime? PaymentDate { get; set; }
//شناسه کاربر
public long? UserId { get; set; }
// وضعیت ارسال (int از DeliveryStatus)
public int? DeliveryStatus { get; set; }
// روش پرداخت (0=IPG,1=Wallet)
public int? PaymentMethod { get; set; }
}

View File

@@ -38,4 +38,6 @@ public class GetAllUserOrderByFilterResponseModel
public string? UserFullName { get; set; }
// کدملی کاربر
public string? UserNationalCode { get; set; }
// روش پرداخت (0=IPG,1=Wallet)
public int PaymentMethod { get; set; }
}

View File

@@ -14,6 +14,8 @@ public class GetUserOrderResponseDto
public bool PaymentStatus { get; set; }
//تاریخ پرداخت
public DateTime? PaymentDate { get; set; }
// روش پرداخت (0=IPG,1=Wallet)
public int PaymentMethod { get; set; }
//شناسه کاربر
public long UserId { get; set; }
//شناسه آدرس کاربر