From 8ee963092fc7ecce612ac266b55b21220c5ea465 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 25 Jul 2022 01:23:38 +0800 Subject: [PATCH] 1 --- .../Models/APIModel/Response/Order/OrderResponse.cs | 5 +++++ BBWY.Client/ViewModels/Order/OrderListViewModel.cs | 7 +++++++ BBWY.Client/Views/Order/OrderList.xaml | 10 +++++++++- BBWY.Server.Business/Order/OrderBusiness.cs | 1 + .../Statistics/StatisticsBusiness.cs | 12 ++++++++---- BBWY.Server.Model/Db/Order/Order.cs | 8 +++++++- 6 files changed, 37 insertions(+), 6 deletions(-) diff --git a/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs index d0d363d0..ef20e1a4 100644 --- a/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs @@ -181,5 +181,10 @@ namespace BBWY.Client.Models public int Count { get; set; } public IList Items { get; set; } + + /// + /// 当前条件汇总利润 + /// + public decimal CurrentConditionsTotalProfit { get; set; } } } diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index e6475c5f..11f53bfa 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -45,6 +45,7 @@ namespace BBWY.Client.ViewModels private Random random; private GlobalContext globalContext; private bool? includeAfterOrder; + private decimal currentConditionsTotalProfit; public IList OrderList { get; set; } @@ -108,6 +109,11 @@ namespace BBWY.Client.ViewModels public ICommand EditAfterSaleOrderCommand { get; set; } + /// + /// 当前条件利润汇总 + /// + public decimal CurrentConditionsTotalProfit { get => currentConditionsTotalProfit; set { Set(ref currentConditionsTotalProfit, value); } } + public OrderListViewModel(OrderService orderService, StatisticsService statisticsService, GlobalContext globalContext, ChoosePurchaseSchemeViewModel choosePurchaseSchemeViewModel) { random = new Random(); @@ -273,6 +279,7 @@ namespace BBWY.Client.ViewModels return; } OrderCount = response.Data.Count; + CurrentConditionsTotalProfit = response.Data.CurrentConditionsTotalProfit; var orderList = response.Data.Items.Map>(); App.Current.Dispatcher.Invoke(() => { diff --git a/BBWY.Client/Views/Order/OrderList.xaml b/BBWY.Client/Views/Order/OrderList.xaml index beeaaa71..c1d7e31f 100644 --- a/BBWY.Client/Views/Order/OrderList.xaml +++ b/BBWY.Client/Views/Order/OrderList.xaml @@ -1009,13 +1009,21 @@ + Grid.Row="8" + HorizontalAlignment="Left"> + + + + + diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index eb0b84e1..8a3f77ca 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -1263,6 +1263,7 @@ namespace BBWY.Server.Business StartTime = orderJToken.Value("orderStartTime"), ModifyTime = modifyTime, OrderPayment = orderJToken.Value("orderPayment"), + SellerPreferentialAmount = orderJToken.Value("sellerDiscount"), OrderSellerPrice = orderJToken.Value("orderSellerPrice"), OrderTotalPrice = orderJToken.Value("orderTotalPrice"), OrderType = (Enums.OrderType)orderJToken.Value("orderType"), diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index 7273f3f0..07734057 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -55,6 +55,8 @@ namespace BBWY.Server.Business public XingXinagSearchResponse XingXiangStatistics(XingXiangSearchOrderRequest xingXiangSearchOrderRequest) { + var mdsShop = freeSqlMultiDBManager.MDSfsql.Select().Where(s => s.ShopId == xingXiangSearchOrderRequest.ShopId.ToString()).ToOne(); + var platformCommissionRatio = mdsShop.PlatformCommissionRatio ?? 0.05M; var beginTime = xingXiangSearchOrderRequest.SearchDate.Date; var endTime = xingXiangSearchOrderRequest.SearchDate.Date.AddDays(1).AddSeconds(-1); IList detailList = null; @@ -66,6 +68,7 @@ namespace BBWY.Server.Business .Where((o, oc) => !invalidOrderStateList.Contains(o.OrderState.Value)) .WhereIf(xingXiangSearchOrderRequest.SpuList != null && xingXiangSearchOrderRequest.SpuList.Count() > 0, (o, oc) => fsql.Select().As("osku").Where(osku => xingXiangSearchOrderRequest.SpuList.Contains(osku.ProductId) && osku.OrderId == o.Id).Any()) + .OrderByDescending((o, oc) => o.StartTime) .ToList((o, oc) => new Order() { Id = o.Id, @@ -78,7 +81,8 @@ namespace BBWY.Server.Business SDCommissionAmount = oc.SDCommissionAmount, DeliveryExpressFreight = oc.DeliveryExpressFreight, PreferentialAmount = oc.PreferentialAmount, - OrderSellerPrice = o.OrderSellerPrice + OrderSellerPrice = o.OrderSellerPrice, + SellerPreferentialAmount = o.SellerPreferentialAmount }); if (orderList.Count() == 0) @@ -106,9 +110,9 @@ namespace BBWY.Server.Business var profit = 0M; var sdCost = 0M; var prodcutAmount = group.Sum(osku => osku.Price * osku.ItemTotal) ?? 0; //货款 - var preferentialAmount = order.PreferentialAmount / skuCount * group.Count(); //该SPU分摊的商家优惠金额 - prodcutAmount -= preferentialAmount; - var commissionAmount = prodcutAmount * 0.05M; //该SPU的平台扣点金额 + var skuSellerPreferentialAmount = order.SellerPreferentialAmount / skuCount * group.Count(); //该SPU分摊的商家优惠金额 + prodcutAmount -= skuSellerPreferentialAmount; + var commissionAmount = prodcutAmount * platformCommissionRatio; //该SPU的平台扣点金额 var freightPriceByUser = order.FreightPrice == 0 ? 0 : order.FreightPrice / skuCount * group.Count(); //该SPU分摊的用户承担运费 var currentOrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == order.Id && ocd.ProductId == spuId).ToList(); var purchaseAmount = currentOrderCostDetailList.Count() > 0 ? currentOrderCostDetailList.Sum(ocd => ocd.TotalCost) : 0; diff --git a/BBWY.Server.Model/Db/Order/Order.cs b/BBWY.Server.Model/Db/Order/Order.cs index c2bc3e5b..c781bdcc 100644 --- a/BBWY.Server.Model/Db/Order/Order.cs +++ b/BBWY.Server.Model/Db/Order/Order.cs @@ -52,11 +52,17 @@ namespace BBWY.Server.Model.Db public decimal OrderSellerPrice { get; set; } = 0.00M; /// - /// 商家优惠金额 + /// 平台补贴 /// [Column(DbType = "decimal(20,2)")] public decimal PreferentialAmount { get; set; } = 0.00M; + /// + /// 商家优惠金额(商家承担) + /// + [Column(DbType = "decimal(20,2)")] + public decimal SellerPreferentialAmount { get; set; } = 0.00M; + /// /// 订单状态 ///