Browse Source

星象统计调整

AddValidOverTime
sanji 2 years ago
parent
commit
c02ddba4a7
  1. 48
      BBWY.Server.Business/Statistics/StatisticsBusiness.cs

48
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<OrderSku>().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId)).ToList();
var orderSkuList = fsql.Select<Model.Db.OrderSku>().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId)).ToList();
//查询成本明细
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList();
//来自订单的spu
var spuIdList = orderSkuList.Select(osku => osku.ProductId).Distinct().ToList();
List<string> noOrderSpuIdList = null;
//来自推广的spu
{
var skuIdList = fsql.Select<JDPopularizeAdSku>()
.Where(jas => jas.Date == xingXiangSearchOrderRequest.SearchDate &&
jas.ShopId == xingXiangSearchOrderRequest.ShopId)
.Distinct().ToList(jas => jas.Sku);
if (skuIdList.Count() > 0)
{
var productIdFromPopularizeList = fsql.Select<ProductSku>(skuIdList).Distinct().ToList(ps => ps.ProductId);
noOrderSpuIdList = productIdFromPopularizeList.Except(spuIdList).ToList();
if (noOrderSpuIdList.Count() > 0)
spuIdList.AddRange(noOrderSpuIdList);
}
}
List<GOIBySpu> spuGoiList = null;
GOIByShop shopGoi = null;
@ -242,6 +259,7 @@ namespace BBWY.Server.Business
detailList = new List<XingXiangItemResponse>();
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<OrderSku>().WhereIf(skuRecentSalesRequest.SkuIds.Count() == 1, osku => osku.SkuId == skuRecentSalesRequest.SkuIds[0])
var list = fsql.Select<Model.Db.OrderSku>().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)

Loading…
Cancel
Save