feat(order): enhance order status management and Protobuf definitions
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m46s
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m46s
- Added AdminNotes handling in UpdateOrderStatusCommandHandler to include delivery descriptions. - Updated DeliveryStatus enum to include ReadyForOfficePickup. - Enhanced GetCustomerOrderHistoryQueryHandler and UserOrderService to support new delivery status. - Updated Protobuf definitions for DeliveryStatus to reflect changes. - Bumped Protobuf project version to accommodate new features.
This commit is contained in:
+5
@@ -35,6 +35,11 @@ public class UpdateOrderStatusCommandHandler : IRequestHandler<UpdateOrderStatus
|
|||||||
order.TrackingCode = request.TrackingCode;
|
order.TrackingCode = request.TrackingCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(request.AdminNotes))
|
||||||
|
{
|
||||||
|
order.DeliveryDescription = request.AdminNotes;
|
||||||
|
}
|
||||||
|
|
||||||
await _context.SaveChangesAsync(cancellationToken);
|
await _context.SaveChangesAsync(cancellationToken);
|
||||||
|
|
||||||
return new UpdateOrderStatusResponseDto
|
return new UpdateOrderStatusResponseDto
|
||||||
|
|||||||
+2
@@ -113,6 +113,7 @@ public class GetCustomerOrderHistoryQueryHandler : IRequestHandler<GetCustomerOr
|
|||||||
DeliveryStatus.Delivered => 4,
|
DeliveryStatus.Delivered => 4,
|
||||||
DeliveryStatus.Cancelled => 5,
|
DeliveryStatus.Cancelled => 5,
|
||||||
DeliveryStatus.Returned => 6,
|
DeliveryStatus.Returned => 6,
|
||||||
|
DeliveryStatus.ReadyForOfficePickup => 7,
|
||||||
_ => 0
|
_ => 0
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -127,6 +128,7 @@ public class GetCustomerOrderHistoryQueryHandler : IRequestHandler<GetCustomerOr
|
|||||||
DeliveryStatus.Delivered => "تحویل داده شد",
|
DeliveryStatus.Delivered => "تحویل داده شد",
|
||||||
DeliveryStatus.Cancelled => "لغو شده",
|
DeliveryStatus.Cancelled => "لغو شده",
|
||||||
DeliveryStatus.Returned => "مرجوع شده",
|
DeliveryStatus.Returned => "مرجوع شده",
|
||||||
|
DeliveryStatus.ReadyForOfficePickup => "آماده تحویل در دفتر",
|
||||||
_ => "نامشخص"
|
_ => "نامشخص"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,5 +15,7 @@ public enum DeliveryStatus
|
|||||||
Returned = 4,
|
Returned = 4,
|
||||||
// لغو شده
|
// لغو شده
|
||||||
Cancelled = 5,
|
Cancelled = 5,
|
||||||
|
// آماده تحویل حضوری در دفتر
|
||||||
|
ReadyForOfficePickup = 6,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Version>0.0.206</Version>
|
<Version>0.0.207</Version>
|
||||||
<DebugType>None</DebugType>
|
<DebugType>None</DebugType>
|
||||||
<DebugSymbols>False</DebugSymbols>
|
<DebugSymbols>False</DebugSymbols>
|
||||||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
|
||||||
|
|||||||
@@ -118,6 +118,8 @@ enum DeliveryStatus
|
|||||||
DELIVERY_SHIPPED = 2;
|
DELIVERY_SHIPPED = 2;
|
||||||
DELIVERY_DELIVERED = 3;
|
DELIVERY_DELIVERED = 3;
|
||||||
DELIVERY_CANCELLED = 4;
|
DELIVERY_CANCELLED = 4;
|
||||||
|
DELIVERY_READY_FOR_OFFICE = 5;
|
||||||
|
DELIVERY_RETURNED = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Order By Id
|
// Get Order By Id
|
||||||
|
|||||||
@@ -102,6 +102,10 @@ enum DeliveryStatus
|
|||||||
DeliveryStatus_Delivered = 3;
|
DeliveryStatus_Delivered = 3;
|
||||||
// مرجوع شده
|
// مرجوع شده
|
||||||
DeliveryStatus_Returned = 4;
|
DeliveryStatus_Returned = 4;
|
||||||
|
// لغو شده
|
||||||
|
DeliveryStatus_Cancelled = 5;
|
||||||
|
// آماده تحویل حضوری در دفتر
|
||||||
|
DeliveryStatus_ReadyForOfficePickup = 6;
|
||||||
}
|
}
|
||||||
enum TransactionType
|
enum TransactionType
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -99,7 +99,20 @@ public class DiscountOrderService : DiscountOrderContract.DiscountOrderContractB
|
|||||||
|
|
||||||
public override async Task<UpdateOrderStatusResponse> UpdateOrderStatus(UpdateOrderStatusRequest request, ServerCallContext context)
|
public override async Task<UpdateOrderStatusResponse> UpdateOrderStatus(UpdateOrderStatusRequest request, ServerCallContext context)
|
||||||
{
|
{
|
||||||
return await _dispatchRequestToCQRS.Handle<UpdateOrderStatusRequest, UpdateOrderStatusCommand, UpdateOrderStatusResponse>(request, context);
|
// Proto DeliveryStatus ≠ Domain DeliveryStatus — نگاشت صریح لازم است
|
||||||
|
var command = new UpdateOrderStatusCommand
|
||||||
|
{
|
||||||
|
OrderId = request.OrderId,
|
||||||
|
DeliveryStatus = MapProtoDeliveryToDomain(request.DeliveryStatus),
|
||||||
|
TrackingCode = request.TrackingCode,
|
||||||
|
AdminNotes = request.AdminNotes
|
||||||
|
};
|
||||||
|
var result = await _sender.Send(command, context.CancellationToken);
|
||||||
|
return new UpdateOrderStatusResponse
|
||||||
|
{
|
||||||
|
Success = result.Success,
|
||||||
|
Message = result.Message ?? string.Empty
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async Task<GetOrderByIdResponse> GetOrderById(GetOrderByIdRequest request, ServerCallContext context)
|
public override async Task<GetOrderByIdResponse> GetOrderById(GetOrderByIdRequest request, ServerCallContext context)
|
||||||
@@ -466,8 +479,9 @@ public class DiscountOrderService : DiscountOrderContract.DiscountOrderContractB
|
|||||||
DomainEnums.DeliveryStatus.Pending => DeliveryStatus.DeliveryProcessing,
|
DomainEnums.DeliveryStatus.Pending => DeliveryStatus.DeliveryProcessing,
|
||||||
DomainEnums.DeliveryStatus.InTransit => DeliveryStatus.DeliveryShipped,
|
DomainEnums.DeliveryStatus.InTransit => DeliveryStatus.DeliveryShipped,
|
||||||
DomainEnums.DeliveryStatus.Delivered => DeliveryStatus.DeliveryDelivered,
|
DomainEnums.DeliveryStatus.Delivered => DeliveryStatus.DeliveryDelivered,
|
||||||
DomainEnums.DeliveryStatus.Returned => DeliveryStatus.DeliveryCancelled,
|
|
||||||
DomainEnums.DeliveryStatus.Cancelled => DeliveryStatus.DeliveryCancelled,
|
DomainEnums.DeliveryStatus.Cancelled => DeliveryStatus.DeliveryCancelled,
|
||||||
|
DomainEnums.DeliveryStatus.ReadyForOfficePickup => DeliveryStatus.DeliveryReadyForOffice,
|
||||||
|
DomainEnums.DeliveryStatus.Returned => DeliveryStatus.DeliveryReturned,
|
||||||
_ => DeliveryStatus.DeliveryPending
|
_ => DeliveryStatus.DeliveryPending
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -476,10 +490,23 @@ public class DiscountOrderService : DiscountOrderContract.DiscountOrderContractB
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private static DomainEnums.DeliveryStatus MapProtoDeliveryFilterToDomain(int protoDeliveryStatus) => protoDeliveryStatus switch
|
private static DomainEnums.DeliveryStatus MapProtoDeliveryFilterToDomain(int protoDeliveryStatus) => protoDeliveryStatus switch
|
||||||
{
|
{
|
||||||
1 => DomainEnums.DeliveryStatus.Pending, // DELIVERY_PROCESSING
|
1 => DomainEnums.DeliveryStatus.Pending, // DELIVERY_PROCESSING
|
||||||
2 => DomainEnums.DeliveryStatus.InTransit, // DELIVERY_SHIPPED
|
2 => DomainEnums.DeliveryStatus.InTransit, // DELIVERY_SHIPPED
|
||||||
3 => DomainEnums.DeliveryStatus.Delivered, // DELIVERY_DELIVERED
|
3 => DomainEnums.DeliveryStatus.Delivered, // DELIVERY_DELIVERED
|
||||||
4 => DomainEnums.DeliveryStatus.Cancelled, // DELIVERY_CANCELLED
|
4 => DomainEnums.DeliveryStatus.Cancelled, // DELIVERY_CANCELLED
|
||||||
_ => DomainEnums.DeliveryStatus.None // DELIVERY_PENDING (0)
|
5 => DomainEnums.DeliveryStatus.ReadyForOfficePickup, // DELIVERY_READY_FOR_OFFICE
|
||||||
|
6 => DomainEnums.DeliveryStatus.Returned, // DELIVERY_RETURNED
|
||||||
|
_ => DomainEnums.DeliveryStatus.None // DELIVERY_PENDING (0)
|
||||||
|
};
|
||||||
|
|
||||||
|
private static DomainEnums.DeliveryStatus MapProtoDeliveryToDomain(DeliveryStatus status) => status switch
|
||||||
|
{
|
||||||
|
DeliveryStatus.DeliveryProcessing => DomainEnums.DeliveryStatus.Pending,
|
||||||
|
DeliveryStatus.DeliveryShipped => DomainEnums.DeliveryStatus.InTransit,
|
||||||
|
DeliveryStatus.DeliveryDelivered => DomainEnums.DeliveryStatus.Delivered,
|
||||||
|
DeliveryStatus.DeliveryCancelled => DomainEnums.DeliveryStatus.Cancelled,
|
||||||
|
DeliveryStatus.DeliveryReadyForOffice => DomainEnums.DeliveryStatus.ReadyForOfficePickup,
|
||||||
|
DeliveryStatus.DeliveryReturned => DomainEnums.DeliveryStatus.Returned,
|
||||||
|
_ => DomainEnums.DeliveryStatus.None
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1058,6 +1058,7 @@ public class UserOrderService : UserOrderContract.UserOrderContractBase
|
|||||||
Domain.Enums.DeliveryStatus.Delivered => "تحویل داده شده",
|
Domain.Enums.DeliveryStatus.Delivered => "تحویل داده شده",
|
||||||
Domain.Enums.DeliveryStatus.Returned => "مرجوع شده",
|
Domain.Enums.DeliveryStatus.Returned => "مرجوع شده",
|
||||||
Domain.Enums.DeliveryStatus.Cancelled => "لغو شده",
|
Domain.Enums.DeliveryStatus.Cancelled => "لغو شده",
|
||||||
|
Domain.Enums.DeliveryStatus.ReadyForOfficePickup => "آماده تحویل در دفتر",
|
||||||
_ => status.ToString()
|
_ => status.ToString()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user