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, Enums.IntoStoreType? intoStoreType, IList orderPurchaseInfoList, IList orderPurchaseRelationInfoList, IList orderPurchaseSkuInfoList) { var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId); if (purchaseOrder == null) return; if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴 && intoStoreType != Enums.IntoStoreType.厂商代发入仓) { 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); } else { purchaseExpressOrder.BelongSkuIds = purchaseOrder.BelongSkuIds; } } } }