From 1b1c37f674cccc69917719a6ebcb227ffbd4a5a6 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 20 Jul 2023 13:05:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95sku=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E8=A3=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWYB.Server.Business/Order/OrderBusiness.cs | 42 +++++++++++++++++++ .../Dto/Response/Order/OrderSkuResponse.cs | 5 +++ 2 files changed, 47 insertions(+) diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 9921777..35ef554 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -277,10 +277,52 @@ namespace BBWYB.Server.Business { foreach (var orderSku in order.ItemList) { + #region 寻找sku的限时任务 var purchaseTimeLimitTask = orderTimeLimitTaskList.FirstOrDefault(x => x.OrderId == order.Id && x.SkuId == orderSku.SkuId); if (purchaseTimeLimitTask != null) orderSku.TimeLimitTaskList.Add(purchaseTimeLimitTask); orderSku.PurchaseTimeLimitTask = orderSku.TimeLimitTaskList.FirstOrDefault(t => t.TaskType == Enums.TimeLimitTaskType.采购任务); + #endregion + + #region 判断sku的发货状态 + var purchaseOrder = order.OrderPurchaseInfoList.FirstOrDefault(opi => opi.OrderId == order.Id && opi.BelongSkuIds.Contains(orderSku.SkuId)); + if (purchaseOrder != null) + { + if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴 && order.IntoStoreType != Enums.IntoStoreType.厂商代发入仓) + { + //验证采购关系 + var currentSku_PurchaseSkuIdList = orderPurchaseRelationInfoList.Where(opri => opri.OrderId == order.Id && + opri.PurchaseOrderId == purchaseOrder.PurchaseOrderId && + opri.BelongSkuId == orderSku.SkuId) + .Select(x => x.PurchaseSkuId) + .Distinct() + .ToList(); + if (currentSku_PurchaseSkuIdList.Count() > 0) + { + var currentSku_PurchaseSkuList = orderPurchaseSkuInfoList.Where(posku => posku.OrderId == order.Id && + posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId && + currentSku_PurchaseSkuIdList.Contains(posku.PurchaseSkuId)) + .ToList(); + if (currentSku_PurchaseSkuList.Count() > 0) + { + var totalCount = currentSku_PurchaseSkuList.Count(); + var shipCount = currentSku_PurchaseSkuList.Count(posku => !string.IsNullOrEmpty(posku.WaybillNo)); + if (totalCount == shipCount) + orderSku.ShipState = 1; + if (shipCount == 0) + orderSku.ShipState = 0; + if (totalCount > shipCount) + orderSku.ShipState = 2; + } + } + } + else + { + orderSku.ShipState = purchaseOrder.PurchaseExpressOrderList != null && + purchaseOrder.PurchaseExpressOrderList.Count() > 0 ? 1 : 0; + } + } + #endregion } } diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs index ccefa76..a883c01 100644 --- a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs @@ -10,6 +10,11 @@ namespace BBWYB.Server.Model.Dto TimeLimitTaskList = new List(); } + /// + /// 订单SKU发货状态 (未发货=0,已发货=1,部分发=2) + /// + public int ShipState { get; set; } + /// /// 快递单列表 ///