From c02ddba4a7842f5041f577812656d6070020c811 Mon Sep 17 00:00:00 2001 From: sanji Date: Wed, 15 Nov 2023 14:25:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=9F=E8=B1=A1=E7=BB=9F=E8=AE=A1=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Statistics/StatisticsBusiness.cs | 48 +++++++++++++++++-- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index 3a02dccd..c2012a44 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -6,11 +6,9 @@ using BBWY.Server.Model.Db; using BBWY.Server.Model.Db.Mds; using BBWY.Server.Model.Dto; using Newtonsoft.Json; -using Org.BouncyCastle.Ocsp; using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.InteropServices.ComTypes; using Yitter.IdGenerator; namespace BBWY.Server.Business @@ -200,12 +198,31 @@ namespace BBWY.Server.Business var orderIdList = orderList.Select(o => o.Id).ToList(); - var orderSkuList = fsql.Select().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId)).ToList(); + var orderSkuList = fsql.Select().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId)).ToList(); //查询成本明细 var orderCostDetailList = fsql.Select().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList(); + //来自订单的spu var spuIdList = orderSkuList.Select(osku => osku.ProductId).Distinct().ToList(); + + List noOrderSpuIdList = null; + //来自推广的spu + { + var skuIdList = fsql.Select() + .Where(jas => jas.Date == xingXiangSearchOrderRequest.SearchDate && + jas.ShopId == xingXiangSearchOrderRequest.ShopId) + .Distinct().ToList(jas => jas.Sku); + if (skuIdList.Count() > 0) + { + var productIdFromPopularizeList = fsql.Select(skuIdList).Distinct().ToList(ps => ps.ProductId); + noOrderSpuIdList = productIdFromPopularizeList.Except(spuIdList).ToList(); + if (noOrderSpuIdList.Count() > 0) + spuIdList.AddRange(noOrderSpuIdList); + } + } + + List spuGoiList = null; GOIByShop shopGoi = null; @@ -242,6 +259,7 @@ namespace BBWY.Server.Business detailList = new List(); + foreach (var order in orderList) { var currentOrderSkuList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList(); @@ -285,7 +303,27 @@ namespace BBWY.Server.Business } //var shopProductAmount = orderSkuList.Sum(osku => osku.ItemTotal * osku.Price); - var shopActualAmount = orderSkuList.Sum(osku => osku.ShouldPay ?? 0M); + var shopActualAmount = orderSkuList.Sum(osku => + { + var pingtaibutie = (osku.PingTaiChengDanYouHuiQuan ?? 0M) + (osku.SuperRedEnvelope ?? 0M) + (osku.XianPinLeiDongQuan ?? 0M); + return (((osku.ShouldPay ?? 0M) - (osku.VenderFee ?? 0M) + pingtaibutie) * osku.ItemTotal) ?? 0M; + }); + + if (noOrderSpuIdList != null && noOrderSpuIdList.Count() > 0) + { + foreach (var spuId in noOrderSpuIdList) + { + //var spuGoi = spuGoiList?.FirstOrDefault(x => x.Spu == spuId); + var xxRespose = new XingXiangItemResponse() + { + Spu = spuId, + Profit = 0M, + ActualAmount = 0M, + SpuYingLiRatio = 0M + }; + detailList.Add(xxRespose); + } + } foreach (var d in detailList) { @@ -401,7 +439,7 @@ namespace BBWY.Server.Business var endTime = DateTime.Now; var startDate = DateTime.Now.Date.AddMonths(-1); - var list = fsql.Select().WhereIf(skuRecentSalesRequest.SkuIds.Count() == 1, osku => osku.SkuId == skuRecentSalesRequest.SkuIds[0]) + var list = fsql.Select().WhereIf(skuRecentSalesRequest.SkuIds.Count() == 1, osku => osku.SkuId == skuRecentSalesRequest.SkuIds[0]) .WhereIf(skuRecentSalesRequest.SkuIds.Count() > 1, osku => skuRecentSalesRequest.SkuIds.Contains(osku.SkuId)) .Where(osku => osku.CreateTime >= startDate && osku.CreateTime <= endTime) .GroupBy(osku => osku.SkuId)