diff --git a/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs b/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs index 8ef0894..1d345af 100644 --- a/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs +++ b/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs @@ -49,4 +49,14 @@ public class OrderWorkplaceStatsOutput /// 问题件数量。 /// public int Problematic { get; set; } + + /// + /// 店铺数量。 + /// + public int StoreCount { get; set; } + + /// + /// 店铺订单待处理数量(履约状态 pending)。 + /// + public int StoreOrderPending { get; set; } } diff --git a/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs b/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs index fd3320a..b463def 100644 --- a/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs +++ b/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs @@ -191,7 +191,7 @@ public partial class OrderService } } - private const string ParcelServiceNoPrefix = "NE"; + private const string ParcelServiceNoPrefix = "ID"; private static void NormalizeParcelCreateInput(OrderParcelCreateInput input) { diff --git a/src/Oms.Application/Services/Orders/OrderService.Workplace.cs b/src/Oms.Application/Services/Orders/OrderService.Workplace.cs index b41f30c..dbfa3b8 100644 --- a/src/Oms.Application/Services/Orders/OrderService.Workplace.cs +++ b/src/Oms.Application/Services/Orders/OrderService.Workplace.cs @@ -3,11 +3,19 @@ using Oms.Application.Dtos.Orders; using Oms.Application.Shared; using Oms.Domain.OrdersAggregate; using Oms.Domain.OrdersAggregate.Consts; +using Oms.Domain.OrdersAggregate.Repositories; +using Oms.Domain.WarehouseAggregate.Consts; namespace Oms.Application.Services.Orders; public partial class OrderService { + private ISalesStoreRepository SalesStoreRepository => + LazyServiceProvider.GetRequiredService(); + + private ISalesStoreOrderRepository SalesStoreOrderRepository => + LazyServiceProvider.GetRequiredService(); + /// /// 工作台订单统计概览。 /// @@ -46,6 +54,17 @@ public partial class OrderService + GetCount(OrderStatusCodes.DeliverySuccess) + GetCount(OrderStatusCodes.DeliveryFailed); + var customerId = filter.CustomerId; + var storeCount = customerId is > 0 + ? await SalesStoreRepository.CountAsync(x => x.CustomerId == customerId.Value) + : await SalesStoreRepository.CountAsync(_ => true); + var storeOrderPending = customerId is > 0 + ? await SalesStoreOrderRepository.CountAsync(x => + x.CustomerId == customerId.Value + && x.FulfillStatus == SalesStoreFulfillStatusCodes.Pending) + : await SalesStoreOrderRepository.CountAsync(x => + x.FulfillStatus == SalesStoreFulfillStatusCodes.Pending); + return new OrderWorkplaceStatsOutput { Total = counts.Values.Sum(), @@ -57,6 +76,8 @@ public partial class OrderService Shipped = shipped, PendingOnline = GetCount(OrderStatusCodes.PendingOnline), Problematic = GetCount(OrderStatusCodes.Problematic), + StoreCount = storeCount, + StoreOrderPending = storeOrderPending, }; }