Update payment status to enum and refactor update order handler

This commit is contained in:
masoodafar-web
2025-11-28 04:03:12 +03:30
parent 067fe6cc0e
commit 698c044be6
5 changed files with 32 additions and 29 deletions

View File

@@ -14,33 +14,34 @@ public class UpdateUserOrderCommandHandler : IRequestHandler<UpdateUserOrderComm
public async Task<Unit> Handle(UpdateUserOrderCommand request, CancellationToken cancellationToken)
{
// ابتدا سفارش فعلی را از CMS می‌گیریم تا سایر فیلدها (مبلغ، پرداخت و ...) دست‌نخورده بمانند
var current = await _context.UserOrders.GetUserOrderAsync(new GetUserOrderRequest
{
Id = request.Id
}, cancellationToken: cancellationToken);
if (current is null)
return Unit.Value;
// // ابتدا سفارش فعلی را از CMS می‌گیریم تا سایر فیلدها (مبلغ، پرداخت و ...) دست‌نخورده بمانند
// var current = await _context.UserOrders.GetUserOrderAsync(new GetUserOrderRequest
// {
// Id = request.Id
// }, cancellationToken: cancellationToken);
//
// if (current is null)
// return Unit.Value;
// ساخت درخواست کامل برای UpdateUserOrder در CMS
var updateRequest = new UpdateUserOrderRequest
{
Id = current.Id,
Amount = current.Amount,
PackageId = current.PackageId,
TransactionId = current.TransactionId,
PaymentStatus = current.PaymentStatus,
PaymentDate = current.PaymentDate,
UserId = current.UserId,
UserAddressId = current.UserAddressId,
PaymentMethod = current.PaymentMethod,
DeliveryStatus = (CMSMicroservice.Protobuf.Protos.DeliveryStatus)request.DeliveryStatus,
TrackingCode = request.TrackingCode ?? string.Empty,
DeliveryDescription = request.DeliveryDescription ?? string.Empty
};
await _context.UserOrders.UpdateUserOrderAsync(updateRequest, cancellationToken: cancellationToken);
// var updateRequest = new UpdateUserOrderRequest
// {
// Id = current.Id,
// Amount = current.Amount,
// PackageId = current.PackageId,
// TransactionId = current.TransactionId,
// PaymentStatus = current.PaymentStatus,
// PaymentDate = current.PaymentDate,
// UserId = current.UserId,
// UserAddressId = current.UserAddressId,
// PaymentMethod = current.PaymentMethod,
//
// };
var updatingRequest = request.Adapt<UpdateUserOrderRequest>();
updatingRequest.DeliveryStatus = (CMSMicroservice.Protobuf.Protos.DeliveryStatus)request.DeliveryStatus;
updatingRequest.TrackingCode = request.TrackingCode ?? string.Empty;
updatingRequest.DeliveryDescription = request.DeliveryDescription ?? string.Empty;
await _context.UserOrders.UpdateUserOrderAsync(updatingRequest, cancellationToken: cancellationToken);
return Unit.Value;
}

View File

@@ -1,3 +1,5 @@
using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder;
namespace BackOffice.BFF.Application.UserOrderCQ.Queries.GetUserOrder;
public class GetUserOrderResponseDto
@@ -11,7 +13,7 @@ public class GetUserOrderResponseDto
//شناسه تراکنش
public long? TransactionId { get; set; }
//وضعیت پرداخت (true برای Success)
public bool PaymentStatus { get; set; }
public PaymentMethod PaymentStatus { get; set; }
//تاریخ پرداخت
public DateTime? PaymentDate { get; set; }
// روش پرداخت (0=IPG,1=Wallet)

View File

@@ -7,7 +7,7 @@
<ItemGroup>
<PackageReference Include="Afrino.FMSMicroservice.Protobuf" Version="0.0.122" />
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.134" />
<PackageReference Include="Foursat.CMSMicroservice.Protobuf" Version="0.0.137" />
<PackageReference Include="Google.Protobuf" Version="3.23.3" />
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.54.0" />

View File

@@ -4,7 +4,7 @@
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Version>0.0.113</Version>
<Version>0.0.114</Version>
<DebugType>None</DebugType>
<DebugSymbols>False</DebugSymbols>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>

View File

@@ -81,7 +81,7 @@ message UpdateUserOrderRequest
int64 id = 1;
// فیلدهای قدیمی (فعلاً برای سازگاری نگه داشته شده‌اند)
int64 amount = 2;
int64 package_id = 3;
google.protobuf.Int64Value package_id = 3;
google.protobuf.Int64Value transaction_id = 4;
bool payment_status = 5;
google.protobuf.Timestamp payment_date = 6;