Browse Source

星象接口改造

qianyi
shanji 3 years ago
parent
commit
3f11b23bdb
  1. 42
      BBWY.Server.Business/Statistics/StatisticsBusiness.cs

42
BBWY.Server.Business/Statistics/StatisticsBusiness.cs

@ -47,10 +47,26 @@ namespace BBWY.Server.Business
IList<XingXiangItemResponse> detailList = null; IList<XingXiangItemResponse> detailList = null;
//查询订单 //查询订单
var orderList = fsql.Select<Order>().Where(o => o.ShopId == xingXiangSearchOrderRequest.ShopId) var orderList = fsql.Select<Order, OrderCost>().InnerJoin((o, oc) => o.Id == oc.OrderId)
.Where(o => o.StartTime >= beginTime && o.StartTime <= endTime) .Where((o, oc) => o.ShopId == xingXiangSearchOrderRequest.ShopId)
.Where(o => !invalidOrderStateList.Contains(o.OrderState.Value)) .Where((o, oc) => o.StartTime >= beginTime && o.StartTime <= endTime)
.ToList(); .Where((o, oc) => !invalidOrderStateList.Contains(o.OrderState.Value))
.WhereIf(xingXiangSearchOrderRequest.SpuList != null && xingXiangSearchOrderRequest.SpuList.Count() > 0,
(o, oc) => fsql.Select<OrderSku>().As("osku").Where(osku => xingXiangSearchOrderRequest.SpuList.Contains(osku.ProductId) && osku.OrderId == o.Id).Any())
.ToList((o, oc) => new Order()
{
Id = o.Id,
FreightPrice = o.FreightPrice,
OrderState = o.OrderState,
OrderTotalPrice = o.OrderTotalPrice,
StartTime = o.StartTime,
StorageType = o.StorageType,
ShopId = o.ShopId,
SDCommissionAmount = oc.SDCommissionAmount,
DeliveryExpressFreight = oc.DeliveryExpressFreight,
PreferentialAmount = oc.PreferentialAmount,
OrderSellerPrice = o.OrderSellerPrice
});
if (orderList.Count() == 0) if (orderList.Count() == 0)
return null; return null;
@ -73,22 +89,28 @@ namespace BBWY.Server.Business
foreach (var group in currentOrderSkuGroups) foreach (var group in currentOrderSkuGroups)
{ {
var spuId = group.Key; var spuId = group.Key;
var profit = 0M;
var sdCost = 0M;
var prodcutAmount = group.Sum(osku => osku.Price * osku.ItemTotal) ?? 0; //货款 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 commissionAmount = prodcutAmount * 0.05M; //该SPU的平台扣点金额
var freightPriceByUser = order.FreightPrice == 0 ? 0 : order.FreightPrice / skuCount * group.Count(); //该SPU分配的用户承担运费 var freightPriceByUser = order.FreightPrice == 0 ? 0 : order.FreightPrice / skuCount * group.Count(); //该SPU分摊的用户承担运费
var currentOrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == spuId).ToList(); var currentOrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == spuId).ToList();
var purchaseAmount = currentOrderCostDetailList.Count() > 0 ? currentOrderCostDetailList.Sum(ocd => ocd.TotalCost) : 0; var purchaseAmount = currentOrderCostDetailList.Count() > 0 ? currentOrderCostDetailList.Sum(ocd => ocd.TotalCost) : 0;
var deliveryFreight = currentOrderCostDetailList.Count() > 0 ? currentOrderCostDetailList.Sum(ocd => ocd.DeliveryExpressFreight) : 0; var deliveryFreight = currentOrderCostDetailList.Count() > 0 ? currentOrderCostDetailList.Sum(ocd => ocd.DeliveryExpressFreight) : 0;
var profit = 0M;
if (order.StorageType != Enums.StorageType.SD) if (order.StorageType != Enums.StorageType.SD)
{
profit = prodcutAmount + freightPriceByUser - purchaseAmount - deliveryFreight - commissionAmount; profit = prodcutAmount + freightPriceByUser - purchaseAmount - deliveryFreight - commissionAmount;
}
else else
{ {
var sdCommissionAmount = order.SDCommissionAmount.Value / skuCount * group.Count(); var sdCommissionAmount = order.SDCommissionAmount.Value / skuCount * group.Count();
profit = 0 - sdCommissionAmount - commissionAmount - deliveryFreight; profit = 0;
totalSDOrderCost += Math.Abs(profit); sdCost = sdCommissionAmount + commissionAmount + order.DeliveryExpressFreight ?? 0M;
totalSDOrderCost += sdCost;
} }
var xxRespose = detailList.FirstOrDefault(xx => xx.Spu == spuId); var xxRespose = detailList.FirstOrDefault(xx => xx.Spu == spuId);
if (xxRespose == null) if (xxRespose == null)
@ -101,7 +123,7 @@ namespace BBWY.Server.Business
{ {
xxRespose.SDOrderCount++; xxRespose.SDOrderCount++;
xxRespose.SDOrderAmount += prodcutAmount; xxRespose.SDOrderAmount += prodcutAmount;
xxRespose.SDOrderCost += Math.Abs(profit); xxRespose.SDOrderCost += sdCost;
} }
} }
} }

Loading…
Cancel
Save