diff --git a/BBWYB.Server.API/Controllers/OrderController.cs b/BBWYB.Server.API/Controllers/OrderController.cs
index f9f30d6..8491317 100644
--- a/BBWYB.Server.API/Controllers/OrderController.cs
+++ b/BBWYB.Server.API/Controllers/OrderController.cs
@@ -23,11 +23,21 @@ namespace BBWYB.Server.API.Controllers
///
///
[HttpPost]
- public OrderListResponse GetOrderList(QueryOrderRequest request)
+ public OrderListResponse GetOrderList([FromBody]QueryOrderRequest request)
{
return orderBusiness.GetOrderList(request);
}
+ ///
+ /// 获取快递单列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public IList GetPurchaseExpressOrderList([FromBody]QueryExpressOrderRequest request)
+ {
+ return orderBusiness.GetPurchaseExpressOrderList(request);
+ }
/////
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index 3819cab..8c8d564 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -129,7 +129,7 @@ namespace BBWYB.Server.Business
IsManualEdited = oct.IsManualEdited,
PackConfigState = o.PackConfigState,
SkuAmount = oct.SkuAmount,
- PurchaseFreight=oct.PurchaseFreight
+ PurchaseFreight = oct.PurchaseFreight
};
}
@@ -249,6 +249,70 @@ namespace BBWYB.Server.Business
};
}
+ public IList GetPurchaseExpressOrderList(QueryExpressOrderRequest request)
+ {
+ var purchaseExpressOrderList = fsql.Select()
+ .InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo)
+ .Where((eori, peo) => eori.OrderId == request.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().Where(op => op.OrderId == request.OrderId && op.IsEnabled == true).ToList();
+ var orderPurchaseRelationList = fsql.Select().Where(opri => opri.OrderId == request.OrderId).ToList();
+ var orderPurchaseSkuList = fsql.Select().Where(posku => posku.OrderId == request.OrderId).ToList();
+ var orderSkuList = fsql.Select().Where(osku => osku.OrderId == request.OrderId).ToList();
+
+ IList list = new List();
+ #region 处理SKU的快递单
+ foreach (var purchaseOrder in orderPurchaseInfoList)
+ {
+ if (purchaseOrder.PurchasePlatform == Enums.Platform.阿里巴巴)
+ {
+ var currentRelationList = orderPurchaseRelationList.Where(ori => ori.PurchaseOrderId == purchaseOrder.PurchaseOrderId &&
+ ori.SourceSkuId == request.SourceSkuId).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 void OutStock(OutStockRequest request)
//{
// var dbOrder = fsql.Select(request.OrderId).ToOne();
diff --git a/BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs
new file mode 100644
index 0000000..936c733
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class QueryExpressOrderRequest
+ {
+ public string OrderId { get; set; }
+
+ ///
+ /// 来源SKUID (JD)
+ ///
+ public string SourceSkuId { get; set; }
+ }
+}