|
|
@ -206,40 +206,50 @@ namespace BBWYB.Server.Business |
|
|
|
#region 处理SKU的快递单
|
|
|
|
foreach (var purchaseExpressOrder in purchaseExpressOrderList) |
|
|
|
{ |
|
|
|
var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId); |
|
|
|
if (purchaseOrder == null) |
|
|
|
continue; |
|
|
|
if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
|
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationInfoList, orderPurchaseSkuInfoList); |
|
|
|
var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == purchaseExpressOrder.OrderId && |
|
|
|
purchaseExpressOrder.BelongSkuIds.Contains(osku.SkuId)).ToList(); |
|
|
|
foreach (var osku in currentOrderSkuList) |
|
|
|
{ |
|
|
|
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(); |
|
|
|
|
|
|
|
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 |
|
|
|
{ |
|
|
|
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); |
|
|
|
} |
|
|
|
if (osku.PurchaseExpressOrderList.Any(peo => peo.WaybillNo == purchaseExpressOrder.WaybillNo)) |
|
|
|
continue; |
|
|
|
osku.PurchaseExpressOrderList.Add(purchaseExpressOrder); |
|
|
|
} |
|
|
|
|
|
|
|
//var purchaseOrder = orderPurchaseInfoList.FirstOrDefault(po => po.PurchaseOrderId == purchaseExpressOrder.PurchaseOrderId);
|
|
|
|
//if (purchaseOrder == null)
|
|
|
|
// continue;
|
|
|
|
//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();
|
|
|
|
|
|
|
|
// 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
|
|
|
|
//{
|
|
|
|
// 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);
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
@ -273,47 +283,91 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => op.OrderId == request.OrderId && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>(); |
|
|
|
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.OrderId == request.OrderId && opri.SourceSkuId == request.SourceSkuId).ToList(); |
|
|
|
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(posku => posku.OrderId == request.OrderId).ToList(); |
|
|
|
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId).ToList(); |
|
|
|
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(posku => posku.OrderId == request.OrderId).ToList<OrderPurchaseSkuInfoResponse>(); |
|
|
|
var orderSku = fsql.Select<OrderSku>().Where(osku => osku.OrderId == request.OrderId && osku.BelongSkuId == request.SourceSkuId).ToOne(); |
|
|
|
|
|
|
|
IList<PurchaseExpressOrderResponse> list = new List<PurchaseExpressOrderResponse>(); |
|
|
|
#region 处理SKU的快递单
|
|
|
|
foreach (var purchaseOrder in orderPurchaseInfoList) |
|
|
|
foreach (var purchaseExpressOrder in purchaseExpressOrderList) |
|
|
|
{ |
|
|
|
if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴) |
|
|
|
{ |
|
|
|
var currentRelationList = orderPurchaseRelationList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); |
|
|
|
|
|
|
|
var waybillNos = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId && |
|
|
|
currentRelationList.Any(opri => opri.PurchaseSkuId == posku.PurchaseSkuId)) |
|
|
|
.Select(x => x.WaybillNo) |
|
|
|
.ToList(); |
|
|
|
foreach (var waybillNo in waybillNos) |
|
|
|
{ |
|
|
|
var peo = purchaseExpressOrderList.FirstOrDefault(x => x.WaybillNo == waybillNo); |
|
|
|
if (peo != null && !list.Any(x => x.WaybillNo == waybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId)) |
|
|
|
list.Add(peo); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList); |
|
|
|
if (!string.IsNullOrEmpty(purchaseExpressOrder.BelongSkuIds)) |
|
|
|
{ |
|
|
|
var currentSkuList = orderSkuList.Where(osku => purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).Select(osku => osku.BelongSkuId).Distinct().ToList(); |
|
|
|
if (currentSkuList.Contains(request.SourceSkuId)) |
|
|
|
if (purchaseExpressOrder.BelongSkuIds.Contains(orderSku.SkuId)) |
|
|
|
{ |
|
|
|
var peoList = purchaseExpressOrderList.Where(x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList(); |
|
|
|
foreach (var peo in peoList) |
|
|
|
{ |
|
|
|
if (!list.Any(x => x.WaybillNo == peo.WaybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId)) |
|
|
|
list.Add(peo); |
|
|
|
} |
|
|
|
if (!list.Any(x => x.WaybillNo == purchaseExpressOrder.WaybillNo)) |
|
|
|
list.Add(purchaseExpressOrder); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
//foreach (var purchaseOrder in orderPurchaseInfoList)
|
|
|
|
//{
|
|
|
|
// if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴)
|
|
|
|
// {
|
|
|
|
// var currentRelationList = orderPurchaseRelationList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
|
|
|
|
|
|
|
|
// var waybillNos = orderPurchaseSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.PurchaseOrderId &&
|
|
|
|
// currentRelationList.Any(opri => opri.PurchaseSkuId == posku.PurchaseSkuId))
|
|
|
|
// .Select(x => x.WaybillNo)
|
|
|
|
// .ToList();
|
|
|
|
// foreach (var waybillNo in waybillNos)
|
|
|
|
// {
|
|
|
|
// var peo = purchaseExpressOrderList.FirstOrDefault(x => x.WaybillNo == waybillNo);
|
|
|
|
// if (peo != null && !list.Any(x => x.WaybillNo == waybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId))
|
|
|
|
// list.Add(peo);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// var currentSkuList = orderSkuList.Where(osku => purchaseOrder.BelongSkuIds.Contains(osku.SkuId)).Select(osku => osku.BelongSkuId).Distinct().ToList();
|
|
|
|
// if (currentSkuList.Contains(request.SourceSkuId))
|
|
|
|
// {
|
|
|
|
// var peoList = purchaseExpressOrderList.Where(x => x.PurchaseOrderId == purchaseOrder.PurchaseOrderId).ToList();
|
|
|
|
// foreach (var peo in peoList)
|
|
|
|
// {
|
|
|
|
// if (!list.Any(x => x.WaybillNo == peo.WaybillNo && x.PurchaseOrderId == purchaseOrder.PurchaseOrderId))
|
|
|
|
// list.Add(peo);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
#endregion
|
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
public IList<PurchaseExpressOrderResponse> GetPurchaseExpressOrderList(IList<string> orderIds) |
|
|
|
{ |
|
|
|
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>() |
|
|
|
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo) |
|
|
|
.Where((eori, peo) => orderIds.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrderResponse |
|
|
|
{ |
|
|
|
CreateTime = peo.CreateTime, |
|
|
|
ExpressContent = peo.ExpressContent, |
|
|
|
ExpressChangedTime = peo.ExpressChangedTime, |
|
|
|
ExpressState = peo.ExpressState, |
|
|
|
IsSubscribeKD100 = peo.IsSubscribeKD100, |
|
|
|
OrderId = eori.OrderId, |
|
|
|
PurchaseOrderId = eori.PurchaseOrderId, |
|
|
|
ShopId = eori.ShopId.Value, |
|
|
|
SourceExpressId = peo.SourceExpressId, |
|
|
|
SourceExpressName = peo.SourceExpressName, |
|
|
|
TargetExpressId = peo.TargetExpressId, |
|
|
|
TargetExpressName = peo.TargetExpressName, |
|
|
|
WaybillNo = peo.WaybillNo |
|
|
|
}); |
|
|
|
|
|
|
|
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => orderIds.Contains(op.OrderId) && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>(); |
|
|
|
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => orderIds.Contains(opri.OrderId)).ToList(); |
|
|
|
var orderPurchaseSkuList = fsql.Select<OrderPurchaseSkuInfo>().Where(posku => orderIds.Contains(posku.OrderId)).ToList<OrderPurchaseSkuInfoResponse>(); |
|
|
|
|
|
|
|
#region 处理SKU的快递单
|
|
|
|
foreach (var purchaseExpressOrder in purchaseExpressOrderList) |
|
|
|
{ |
|
|
|
purchaseExpressOrder.CalculationBelongOrderSku(orderPurchaseInfoList, orderPurchaseRelationList, orderPurchaseSkuList); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
return purchaseExpressOrderList; |
|
|
|
} |
|
|
|
|
|
|
|
public void CancelOrder(CancelOrderRequest request, string mdsToken) |
|
|
|
{ |
|
|
|