using BBWYB.Server.Model; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Dto; namespace BBWYB.Server.Business.Extensions { public static class PurchaseExpressOrderExtension { /// /// 计算快递单归属 /// /// 必须是经过与快递单关系表进行联合查询的结果 (ExpressOrderRelationInfo-PurchaseExpressOrder) /// /// /// public static void CalculationBelongOrderSku(this PurchaseExpressOrderResponse purchaseExpressOrder, IList orderPurchaseInfoList, IList orderPurchaseRelationInfoList, IList orderPurchaseSkuInfoList) { var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId); if (purchaseOrder == null) return; if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) { var purchaseSkuIds = orderPurchaseSkuInfoList.Where(posku => posku.WaybillNo == purchaseExpressOrder.WaybillNo && posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId) .Select(posku => posku.PurchaseSkuId).ToList(); var orderSkuIds = orderPurchaseRelationInfoList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId && purchaseSkuIds.Contains(ori.PurchaseSkuId)) .Select(ori => ori.BelongSkuId) .Distinct() .ToList(); purchaseExpressOrder.BelongSkuIds = string.Join(",", orderSkuIds); //var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && // orderSkuIds.Contains(osku.SkuId)).ToList(); //foreach (var osku in currentOrderSkuList) //{ // if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) // continue; // osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); //} } else { purchaseExpressOrder.BelongSkuIds = purchaseOrder.BelongSkuIds; //var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseOrder.OrderId && // purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); //foreach (var osku in currentOrderSkuList) //{ // if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) // continue; // osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); //} } } } }