|
|
@ -514,49 +514,141 @@ namespace BBWYB.Server.Business |
|
|
|
{ |
|
|
|
List<SpuTotalSaleInfo> insertSpuSaleInfoList = new List<SpuTotalSaleInfo>(); |
|
|
|
List<SkuTotalSaleInfo> insertSkuSaleInfoList = new List<SkuTotalSaleInfo>(); |
|
|
|
|
|
|
|
var noOrderStateList = new List<Enums.OrderState?>() |
|
|
|
{ |
|
|
|
Enums.OrderState.已取消, |
|
|
|
Enums.OrderState.待付款 |
|
|
|
}; |
|
|
|
var spuSaleGroups = fsql.Select<OrderSku, Order>() |
|
|
|
.InnerJoin((osku, o) => osku.OrderId == o.Id) |
|
|
|
.Where((osku, o) => !noOrderStateList.Contains(o.OrderState)) |
|
|
|
.GroupBy((osku, o) => new { osku.ProductId, o.ShopId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
g.Key.ProductId, |
|
|
|
g.Key.ShopId, |
|
|
|
ItemCount = g.Sum(g.Value.Item1.ItemTotal) |
|
|
|
}); |
|
|
|
|
|
|
|
var skuSaleGroups = fsql.Select<OrderSku, Order>() |
|
|
|
.InnerJoin((osku, o) => osku.OrderId == o.Id) |
|
|
|
.Where((osku, o) => !noOrderStateList.Contains(o.OrderState)) |
|
|
|
.GroupBy((osku, o) => new { osku.ProductId, osku.SkuId, o.ShopId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
g.Key.ProductId, |
|
|
|
g.Key.SkuId, |
|
|
|
g.Key.ShopId, |
|
|
|
ItemCount = g.Sum(g.Value.Item1.ItemTotal) |
|
|
|
}); |
|
|
|
|
|
|
|
foreach (var spuSale in spuSaleGroups) |
|
|
|
|
|
|
|
#region 补销量
|
|
|
|
{ |
|
|
|
var insertSpuSale = new SpuTotalSaleInfo() |
|
|
|
var spuSaleGroups = fsql.Select<OrderSku, Order>() |
|
|
|
.InnerJoin((osku, o) => osku.OrderId == o.Id) |
|
|
|
.Where((osku, o) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) |
|
|
|
.GroupBy((osku, o) => new { osku.ProductId, o.ShopId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
g.Key.ProductId, |
|
|
|
g.Key.ShopId, |
|
|
|
ItemCount = g.Sum(g.Value.Item1.ItemTotal) |
|
|
|
}); |
|
|
|
|
|
|
|
var skuSaleGroups = fsql.Select<OrderSku, Order>() |
|
|
|
.InnerJoin((osku, o) => osku.OrderId == o.Id) |
|
|
|
.Where((osku, o) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) |
|
|
|
.GroupBy((osku, o) => new { osku.ProductId, osku.SkuId, o.ShopId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
g.Key.ProductId, |
|
|
|
g.Key.SkuId, |
|
|
|
g.Key.ShopId, |
|
|
|
ItemCount = g.Sum(g.Value.Item1.ItemTotal) |
|
|
|
}); |
|
|
|
|
|
|
|
foreach (var spuSale in spuSaleGroups) |
|
|
|
{ |
|
|
|
ProductId = spuSale.ProductId, |
|
|
|
ShopId = spuSale.ShopId, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsEnabled = true, |
|
|
|
ItemCount = Convert.ToInt64(spuSale.ItemCount), |
|
|
|
UpdateTime = DateTime.Now, |
|
|
|
LastOptimizationItemCount = Convert.ToInt64(spuSale.ItemCount), |
|
|
|
LastOptimizationTime = DateTime.Now |
|
|
|
}; |
|
|
|
var itemCount = Convert.ToInt64(spuSale.ItemCount); |
|
|
|
var insertSpuSale = new SpuTotalSaleInfo() |
|
|
|
{ |
|
|
|
ProductId = spuSale.ProductId, |
|
|
|
ShopId = spuSale.ShopId, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsEnabled = true, |
|
|
|
ItemCount = itemCount, |
|
|
|
UpdateTime = DateTime.Now, |
|
|
|
LastOptimizationItemCount = itemCount, |
|
|
|
LastOptimizationTime = DateTime.Now, |
|
|
|
FirstOptimizationCompletedItemCount = itemCount, |
|
|
|
FirstPurchaseCompletedItemCount = 0, |
|
|
|
IsFirstOptimizationCompleted = true, |
|
|
|
IsFirstPurchaseCompleted = true |
|
|
|
}; |
|
|
|
insertSpuSaleInfoList.Add(insertSpuSale); |
|
|
|
} |
|
|
|
|
|
|
|
foreach (var skuSale in skuSaleGroups) |
|
|
|
{ |
|
|
|
var insertSkuSale = new SkuTotalSaleInfo() |
|
|
|
{ |
|
|
|
ProductId = skuSale.ProductId, |
|
|
|
SkuId = skuSale.SkuId, |
|
|
|
ShopId = skuSale.ShopId, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsEnabled = true, |
|
|
|
ItemCount = Convert.ToInt64(skuSale.ItemCount), |
|
|
|
UpdateTime = DateTime.Now |
|
|
|
}; |
|
|
|
insertSkuSaleInfoList.Add(insertSkuSale); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 采购方案累计信息
|
|
|
|
#region 采购件数
|
|
|
|
/* |
|
|
|
select opi.SchemeId,sum(osku.ItemTotal) from orderpurchaserelationinfo opi |
|
|
|
inner join `order` o on opi.OrderId=o.Id |
|
|
|
inner join ordersku osku on osku.OrderId=opi.OrderId and osku.SkuId=opi.BelongSkuId |
|
|
|
where o.OrderState not in (0,6) and o.ShopId!=11 |
|
|
|
group by opi.SchemeId; |
|
|
|
*/ |
|
|
|
|
|
|
|
{ |
|
|
|
var psItemCountGroups = fsql.Select<OrderPurchaseRelationInfo, Order, OrderSku>() |
|
|
|
.InnerJoin((opi, o, osku) => opi.OrderId == o.Id) |
|
|
|
.InnerJoin((opi, o, osku) => osku.OrderId == opi.OrderId && osku.SkuId == opi.BelongSkuId) |
|
|
|
.Where((opi, o, osku) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) |
|
|
|
.GroupBy((opi, o, osku) => opi.SchemeId) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
SchemeId = g.Key, |
|
|
|
ItemTotal = g.Sum(g.Value.Item3.ItemTotal) |
|
|
|
}); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 采购金额
|
|
|
|
/* |
|
|
|
select opi.SchemeId,sum(osc.SkuAmount) from orderpurchaserelationinfo opi |
|
|
|
inner join `order` o on opi.OrderId=o.Id |
|
|
|
inner join orderSkuCost osc on osc.OrderId=opi.OrderId and osc.SkuId = opi.BelongSkuId |
|
|
|
where o.OrderState not in (0,6) and o.ShopId!=11 |
|
|
|
group by opi.SchemeId; |
|
|
|
*/ |
|
|
|
{ |
|
|
|
var psAmountGroups = fsql.Select<OrderPurchaseRelationInfo, Order, OrderSkuCost>() |
|
|
|
.InnerJoin((opi, o, osc) => opi.OrderId == o.Id) |
|
|
|
.InnerJoin((opi, o, osc) => osc.OrderId == opi.OrderId && osc.SkuId == opi.BelongSkuId) |
|
|
|
.Where((opi, o, osc) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11) |
|
|
|
.GroupBy((opi, o, osc) => opi.SchemeId) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
SchemeId = g.Key, |
|
|
|
Amount = g.Sum(g.Value.Item3.SkuAmount) |
|
|
|
}); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 采购商累计信息
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
fsql.Delete<SpuTotalSaleInfo>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
|
fsql.Delete<SkuTotalSaleInfo>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
|
fsql.Delete<SkuOptimizationHistory>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
|
fsql.Delete<TimeLimitTask>().Where(t => t.TaskType == Enums.TimeLimitTaskType.待议价任务).ExecuteAffrows(); |
|
|
|
fsql.Update<OrderSku>().Set(osku => osku.IsNeedOptimization, 0) |
|
|
|
.Set(osku => osku.IsOptimizationCompleted, 0) |
|
|
|
.Where(osku => osku.IsNeedOptimization == 1) |
|
|
|
.ExecuteAffrows(); |
|
|
|
fsql.Insert(insertSpuSaleInfoList).ExecuteAffrows(); |
|
|
|
fsql.Insert(insertSkuSaleInfoList).ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|