From 4c0dee49cbcc365e6e34ce031c21244c9e45c10e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 21 Aug 2022 05:20:33 +0800 Subject: [PATCH] 1 --- BBWY.Server.Business/Order/OrderBusiness.cs | 101 ++++++-------------- 1 file changed, 28 insertions(+), 73 deletions(-) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 7a0e9190..35462491 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -16,6 +16,7 @@ using NLog; using System; using System.Collections.Generic; using System.Linq; +using System.Linq.Expressions; using System.Net.Http; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -88,22 +89,9 @@ namespace BBWY.Server.Business return select; } - public OrderListResponse GetOrderList(SearchOrderRequest searchOrderRequest) + private Expression> GetOrderListField() { - if (searchOrderRequest.OrderState == Enums.OrderState.已取消) - searchOrderRequest.ExcludeCanceled = false; - if (searchOrderRequest.EndDate != null) - searchOrderRequest.EndDate = searchOrderRequest.EndDate.Value.Date.AddDays(1).AddSeconds(-1); - - - var noCancelSelect = GetOrderListSelect(searchOrderRequest); - var currentConditionsTotalProfit = noCancelSelect.Where((o, ocs, oct) => o.OrderState != Enums.OrderState.已取消).ToAggregate((o, ocs, oct) => oct.Sum(oct.Key.Profit)); - - var select = GetOrderListSelect(searchOrderRequest).OrderByDescending((o, ocs, oct) => o.StartTime) - .Count(out var total) - .Page(searchOrderRequest.PageIndex, searchOrderRequest.PageSize); - - var orderSourceList = select.ToList((o, ocs, oct) => new Order() + return (o, ocs, oct) => new Order() { Id = o.Id, BuyerRemark = o.BuyerRemark, @@ -155,7 +143,25 @@ namespace BBWY.Server.Business RefundAmount = oct.RefundAmount, RefundPurchaseAmount = oct.RefundPurchaseAmount, AfterTotalCost = oct.AfterTotalCost - }); + }; + } + + public OrderListResponse GetOrderList(SearchOrderRequest searchOrderRequest) + { + if (searchOrderRequest.OrderState == Enums.OrderState.已取消) + searchOrderRequest.ExcludeCanceled = false; + if (searchOrderRequest.EndDate != null) + searchOrderRequest.EndDate = searchOrderRequest.EndDate.Value.Date.AddDays(1).AddSeconds(-1); + + + var noCancelSelect = GetOrderListSelect(searchOrderRequest); + var currentConditionsTotalProfit = noCancelSelect.Where((o, ocs, oct) => o.OrderState != Enums.OrderState.已取消).ToAggregate((o, ocs, oct) => oct.Sum(oct.Key.Profit)); + + var select = GetOrderListSelect(searchOrderRequest).OrderByDescending((o, ocs, oct) => o.StartTime) + .Count(out var total) + .Page(searchOrderRequest.PageIndex, searchOrderRequest.PageSize); + + var orderSourceList = select.ToList(GetOrderListField()); var orderList = orderSourceList.Map>(); if (orderList.Count > 0) @@ -197,11 +203,11 @@ namespace BBWY.Server.Business order.OrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == order.Id).ToList(); #endregion - //#region 处理售后信息 - //var afterSaleOrderList = fsql.Select().Where(aso => orderIdList.Contains(aso.OrderId)).ToList(); - //foreach (var order in orderList) - // order.AfterSaleOrderList = afterSaleOrderList.Where(aso => aso.OrderId == order.Id).ToList(); - //#endregion + #region 处理售后信息 + var afterSaleOrderList = fsql.Select().Where(aso => orderIdList.Contains(aso.OrderId)).ToList(); + foreach (var order in orderList) + order.AfterSaleOrderList = afterSaleOrderList.Where(aso => aso.OrderId == order.Id).ToList(); + #endregion #region 翻译仓库Id foreach (var order in orderList) @@ -306,58 +312,7 @@ namespace BBWY.Server.Business var order = fsql.Select().LeftJoin((o, ocs, oct) => o.Id == ocs.OrderId) .LeftJoin((o, ocs, oct) => o.Id == oct.OrderId) .Where((o, ocs, oct) => o.Id == orderId) - .ToOne((o, ocs, oct) => new Order() - { - Id = o.Id, - BuyerRemark = o.BuyerRemark, - EndTime = o.EndTime, - FreightPrice = o.FreightPrice, - ModifyTime = o.ModifyTime, - OrderPayment = o.OrderPayment, - OrderSellerPrice = o.OrderSellerPrice, - OrderState = o.OrderState, - OrderTotalPrice = o.OrderTotalPrice, - OrderType = o.OrderType, - PayType = o.PayType, - Platform = o.Platform, - ShopId = o.ShopId, - StartTime = o.StartTime, - StorageType = o.StorageType, - StoreId = o.StoreId, - StoreOrder = o.StoreOrder, - VenderRemark = o.VenderRemark, - PurchaseRemark = o.PurchaseRemark, - WaybillNo = o.WaybillNo, - Flag = o.Flag, - SDType = o.SDType, - SDKey = o.SDKey, - SDOperator = o.SDOperator, - SDPayBillNo = o.SDPayBillNo, - SDPayChannel = o.SDPayChannel, - IsAfterSaleOrder = o.IsAfterSaleOrder, - - ContactName = ocs.ContactName, - Address = ocs.Address, - Province = ocs.Province, - County = ocs.County, - Town = ocs.Town, - City = ocs.City, - IsDecode = ocs.IsDecode, - Mobile = ocs.Mobile, - TelePhone = ocs.TelePhone, - - DeliveryExpressFreight = oct.DeliveryExpressFreight, - PlatformCommissionAmount = oct.PlatformCommissionAmount, - PlatformCommissionRatio = oct.PlatformCommissionRatio, - PreferentialAmount = oct.PreferentialAmount, - Profit = oct.Profit, - PurchaseAmount = oct.PurchaseAmount, - IsManualEdited = oct.IsManualEdited, - SDCommissionAmount = oct.SDCommissionAmount, - RefundAmount = oct.RefundAmount, - RefundPurchaseAmount = oct.RefundPurchaseAmount, - AfterTotalCost = oct.AfterTotalCost - }); + .ToOne(GetOrderListField()); if (order == null) throw new BusinessException("订单不存在");