Browse Source

修复数据

yijia
shanji 2 years ago
parent
commit
3f2441ae15
  1. 6
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 162
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

6
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -78,5 +78,11 @@ namespace BBWYB.Server.API.Controllers
{
dataRepairBusiness.BatchCompleteOrder();
}
[HttpPost]
public void RepairHistoryItemCount()
{
dataRepairBusiness.RepairHistoryItemCount();
}
}
}

162
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -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();
});
}
}
}

Loading…
Cancel
Save