|
|
@ -9,6 +9,7 @@ using SDKAdapter; |
|
|
|
using SDKAdapter.OperationPlatform.Client; |
|
|
|
using SDKAdapter.OperationPlatform.Models; |
|
|
|
using System.Linq.Expressions; |
|
|
|
using System.Security.Cryptography; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
|
|
|
|
namespace BBWYB.Server.Business |
|
|
@ -22,15 +23,14 @@ namespace BBWYB.Server.Business |
|
|
|
this.opPlatformClientFactory = opPlatformClientFactory; |
|
|
|
} |
|
|
|
|
|
|
|
private ISelect<Order, OrderConsignee, OrderCost, OrderPurchaseInfo> GetOrderListQueryConditions(QueryOrderRequest request) |
|
|
|
private ISelect<Order, OrderConsignee, OrderCost> GetOrderListQueryConditions(QueryOrderRequest request) |
|
|
|
{ |
|
|
|
var select = fsql.Select<Order, OrderConsignee, OrderCost, OrderPurchaseInfo>() |
|
|
|
.LeftJoin((o, ocs, oct, op) => o.Id == ocs.OrderId) |
|
|
|
.LeftJoin((o, ocs, oct, op) => o.Id == oct.OrderId) |
|
|
|
.LeftJoin((o, ocs, oct, op) => o.Id == op.OrderId); |
|
|
|
var select = fsql.Select<Order, OrderConsignee, OrderCost>() |
|
|
|
.LeftJoin((o, ocs, oct) => o.Id == ocs.OrderId) |
|
|
|
.LeftJoin((o, ocs, oct) => o.Id == oct.OrderId); |
|
|
|
if (!string.IsNullOrEmpty(request.OrderId)) |
|
|
|
{ |
|
|
|
select = select.Where((o, ocs, oct, op) => o.Id == request.OrderId); |
|
|
|
select = select.Where((o, ocs, oct) => o.Id == request.OrderId); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
@ -39,27 +39,27 @@ namespace BBWYB.Server.Business |
|
|
|
var childSelect = fsql.Select<OrderSku>().As("osku") |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.Sku), osku => osku.SkuId == request.Sku) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.ProductId), osku => osku.ProductId == request.ProductId); |
|
|
|
select = select.Where((o, ocs, oct, op) => childSelect.Where(osku => osku.OrderId == o.Id).Any()); |
|
|
|
select = select.Where((o, ocs, oct) => childSelect.Where(osku => osku.OrderId == o.Id).Any()); |
|
|
|
} |
|
|
|
|
|
|
|
select = select.WhereIf(request.OrderState != null, (o, ocs, oct, op) => o.OrderState == request.OrderState) |
|
|
|
.WhereIf(request.StartDate != null, (o, ocs, oct, op) => o.StartTime >= request.StartDate) |
|
|
|
.WhereIf(request.EndDate != null, (o, ocs, oct, op) => o.StartTime <= request.EndDate) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.ClientOrderId), (o, ocs, oct, op) => o.ClientOrderId == request.ClientOrderId) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.SourceShopName), (o, ocs, oct, op) => o.SourceShopName == request.SourceShopName) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.SourceSku), (o, ocs, oct, op) => o.SourceSku == request.SourceSku); |
|
|
|
select = select.WhereIf(request.OrderState != null, (o, ocs, oct) => o.OrderState == request.OrderState) |
|
|
|
.WhereIf(request.StartDate != null, (o, ocs, oct) => o.StartTime >= request.StartDate) |
|
|
|
.WhereIf(request.EndDate != null, (o, ocs, oct) => o.StartTime <= request.EndDate) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.ClientOrderId), (o, ocs, oct) => o.ClientOrderId == request.ClientOrderId) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.SourceShopName), (o, ocs, oct) => o.SourceShopName == request.SourceShopName) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.SourceSku), (o, ocs, oct) => o.SourceSku == request.SourceSku); |
|
|
|
} |
|
|
|
|
|
|
|
select = select.WhereIf(request.ShopId != null, (o, ocs, oct, op) => o.ShopId == request.ShopId); |
|
|
|
select = select.WhereIf(request.ShopId != null, (o, ocs, oct) => o.ShopId == request.ShopId); |
|
|
|
|
|
|
|
//select = select.Where((o, ocs, oct) => o.ShopId == searchOrderRequest.ShopId);
|
|
|
|
|
|
|
|
return select; |
|
|
|
} |
|
|
|
|
|
|
|
private Expression<Func<Order, OrderConsignee, OrderCost, OrderPurchaseInfo, Order>> GetOrderListField() |
|
|
|
private Expression<Func<Order, OrderConsignee, OrderCost, Order>> GetOrderListField() |
|
|
|
{ |
|
|
|
return (o, ocs, oct, op) => new Order() |
|
|
|
return (o, ocs, oct) => new Order() |
|
|
|
{ |
|
|
|
Id = o.Id, |
|
|
|
BuyerRemark = o.BuyerRemark, |
|
|
@ -101,14 +101,7 @@ namespace BBWYB.Server.Business |
|
|
|
PlatformCommissionRatio = oct.PlatformCommissionRatio, |
|
|
|
Profit = oct.Profit, |
|
|
|
PurchaseAmount = oct.PurchaseAmount, |
|
|
|
IsManualEdited = oct.IsManualEdited, |
|
|
|
|
|
|
|
PurchaseAccountId = op.PurchaseAccountId, |
|
|
|
PurchaseAccountName = op.PurchaseAccountName, |
|
|
|
PurchaseMethod = op.PurchaseMethod, |
|
|
|
PurchaseOrderId = op.PurchaseOrderId, |
|
|
|
PurchasePlatform = op.PurchasePlatform, |
|
|
|
PurchaserName = op.PurchaserName |
|
|
|
IsManualEdited = oct.IsManualEdited |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
@ -117,7 +110,7 @@ namespace BBWYB.Server.Business |
|
|
|
if (request.EndDate != null) |
|
|
|
request.EndDate = request.EndDate.Value.Date.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
var select = GetOrderListQueryConditions(request).OrderByDescending((o, ocs, oct, op) => o.StartTime) |
|
|
|
var select = GetOrderListQueryConditions(request).OrderByDescending((o, ocs, oct) => o.StartTime) |
|
|
|
.Count(out var total) |
|
|
|
.Page(request.PageIndex, request.PageSize); |
|
|
|
|
|
|
@ -141,6 +134,12 @@ namespace BBWYB.Server.Business |
|
|
|
foreach (var order in orderList) |
|
|
|
order.OrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == order.Id).ToList(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 处理采购信息
|
|
|
|
var orderPurchaseInfoList = fsql.Select<OrderPurchaseInfo>().Where(op => orderIdList.Contains(op.OrderId)).ToList<OrderPurchaseInfoResponse>(); |
|
|
|
foreach (var order in orderList) |
|
|
|
order.OrderPurchaseInfoList = orderPurchaseInfoList.Where(op => op.OrderId == order.Id).ToList(); |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
return new OrderListResponse() |
|
|
|
{ |
|
|
|