From cf4ea04c39bcc1ce58b5fa11ad35427e3504fcf8 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 29 Jun 2023 22:49:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=BF=AB=E9=80=92=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderController.cs | 12 +++- BBWYB.Server.Business/Order/OrderBusiness.cs | 66 ++++++++++++++++++- .../Request/Order/QueryExpressOrderRequest.cs | 18 +++++ 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs 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; } + } +}