Browse Source

查询快递单

yijia
shanji 2 years ago
parent
commit
cf4ea04c39
  1. 12
      BBWYB.Server.API/Controllers/OrderController.cs
  2. 66
      BBWYB.Server.Business/Order/OrderBusiness.cs
  3. 18
      BBWYB.Server.Model/Dto/Request/Order/QueryExpressOrderRequest.cs

12
BBWYB.Server.API/Controllers/OrderController.cs

@ -23,11 +23,21 @@ namespace BBWYB.Server.API.Controllers
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public OrderListResponse GetOrderList(QueryOrderRequest request)
public OrderListResponse GetOrderList([FromBody]QueryOrderRequest request)
{
return orderBusiness.GetOrderList(request);
}
/// <summary>
/// 获取快递单列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public IList<PurchaseExpressOrderResponse> GetPurchaseExpressOrderList([FromBody]QueryExpressOrderRequest request)
{
return orderBusiness.GetPurchaseExpressOrderList(request);
}
///// <summary>

66
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<PurchaseExpressOrderResponse> GetPurchaseExpressOrderList(QueryExpressOrderRequest request)
{
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>()
.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<OrderPurchaseInfo>().Where(op => op.OrderId == request.OrderId && op.IsEnabled == true).ToList<OrderPurchaseInfoResponse>();
var orderPurchaseRelationList = fsql.Select<OrderPurchaseRelationInfo>().Where(opri => opri.OrderId == request.OrderId).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();
IList<PurchaseExpressOrderResponse> list = new List<PurchaseExpressOrderResponse>();
#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<Order>(request.OrderId).ToOne();

18
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; }
/// <summary>
/// 来源SKUID (JD)
/// </summary>
public string SourceSkuId { get; set; }
}
}
Loading…
Cancel
Save