|
|
@ -100,17 +100,26 @@ namespace BBWYB.Server.Business.Sync |
|
|
|
payedQTOrderIdList.Contains(t.OrderId)).ToList(); |
|
|
|
|
|
|
|
//现有sku销量
|
|
|
|
var dbSkuTotalSakeInfoList = fsql.Select<SkuTotalSaleInfo>().Where(s => s.ShopId == shopId && s.IsEnabled == true && payedQTSpuIdList.Contains(s.ProductId)).ToList(); |
|
|
|
var dbSkuTotalSaleInfoList = fsql.Select<SkuTotalSaleInfo>().Where(s => s.ShopId == shopId && s.IsEnabled == true && payedQTSpuIdList.Contains(s.ProductId)) |
|
|
|
.ToList(); |
|
|
|
|
|
|
|
//现有spu销量
|
|
|
|
var dbSpuTotalSaleInfoList = fsql.Select<SpuTotalSaleInfo>().Where(s => s.ShopId == shopId && s.IsEnabled == true && payedQTSpuIdList.Contains(s.ProductId)) |
|
|
|
.ToList(); |
|
|
|
|
|
|
|
#region DB Operation
|
|
|
|
List<Model.Db.Order> insertOrderList = new List<Model.Db.Order>(); |
|
|
|
List<OrderSku> insertOrderSkuList = new List<OrderSku>(); |
|
|
|
List<long> updateOrderSkuIdList_OptimizationFlag = new List<long>(); |
|
|
|
List<OrderConsignee> insertOrderConsigneeList = new List<OrderConsignee>(); |
|
|
|
List<TimeLimitTask> insertTimeLimitTaskList = new List<TimeLimitTask>(); |
|
|
|
List<string> deleteTimeLimitTaskOrderIdList = new List<string>(); |
|
|
|
List<IUpdate<Model.Db.Order>> updateOrderList = new List<IUpdate<Model.Db.Order>>(); |
|
|
|
List<SkuTotalSaleInfo> insertSkuTotalSaleInfoList = new List<SkuTotalSaleInfo>(); |
|
|
|
IList<SkuTotalSaleInfo> updateSkuTotalSaleInfoList = new List<SkuTotalSaleInfo>(); |
|
|
|
|
|
|
|
List<SpuTotalSaleInfo> insertSpuTotalSaleInfoList = new List<SpuTotalSaleInfo>(); |
|
|
|
IList<SpuTotalSaleInfo> updateSpuTotalSaleInfoList = new List<SpuTotalSaleInfo>(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
//等待检查sku销量的订单集合
|
|
|
@ -262,46 +271,82 @@ namespace BBWYB.Server.Business.Sync |
|
|
|
updateOrderList.Add(update); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (!qtOrder.IsPay) |
|
|
|
continue; |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 统计sku销量
|
|
|
|
#region 统计销量
|
|
|
|
foreach (var qtOrder in waitToCheckSkuSaleOrderList) |
|
|
|
{ |
|
|
|
foreach (var qtOrderSku in qtOrder.OrderSkuList) |
|
|
|
{ |
|
|
|
var skuTotalSaleInfo = dbSkuTotalSakeInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); |
|
|
|
if (skuTotalSaleInfo == null) |
|
|
|
#region 统计sku销量
|
|
|
|
{ |
|
|
|
skuTotalSaleInfo = insertSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); |
|
|
|
var skuTotalSaleInfo = dbSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); |
|
|
|
if (skuTotalSaleInfo == null) |
|
|
|
{ |
|
|
|
skuTotalSaleInfo = new SkuTotalSaleInfo() |
|
|
|
skuTotalSaleInfo = insertSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId); |
|
|
|
if (skuTotalSaleInfo == null) |
|
|
|
{ |
|
|
|
SkuId = qtOrderSku.SkuId, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsEnabled = true, |
|
|
|
ItemCount = 0, |
|
|
|
ProductId = qtOrderSku.ProductId, |
|
|
|
ShopId = shopId, |
|
|
|
UpdateTime = DateTime.Now |
|
|
|
}; |
|
|
|
insertSkuTotalSaleInfoList.Add(skuTotalSaleInfo); |
|
|
|
skuTotalSaleInfo = new SkuTotalSaleInfo() |
|
|
|
{ |
|
|
|
SkuId = qtOrderSku.SkuId, |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsEnabled = true, |
|
|
|
ItemCount = 0, |
|
|
|
ProductId = qtOrderSku.ProductId, |
|
|
|
ShopId = shopId, |
|
|
|
UpdateTime = DateTime.Now |
|
|
|
}; |
|
|
|
insertSkuTotalSaleInfoList.Add(skuTotalSaleInfo); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (!updateSkuTotalSaleInfoList.Any(s => s.SkuId == qtOrderSku.SkuId)) |
|
|
|
{ |
|
|
|
updateSkuTotalSaleInfoList.Add(skuTotalSaleInfo); |
|
|
|
} |
|
|
|
skuTotalSaleInfo.ItemCount += qtOrderSku.Quantity; |
|
|
|
} |
|
|
|
else if (!updateSkuTotalSaleInfoList.Any(s => s.SkuId == qtOrderSku.SkuId)) |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 统计spu销量
|
|
|
|
{ |
|
|
|
updateSkuTotalSaleInfoList.Add(skuTotalSaleInfo); |
|
|
|
var spuTotalSaleInfo = dbSpuTotalSaleInfoList.FirstOrDefault(s => s.ProductId == qtOrderSku.ProductId); |
|
|
|
if (spuTotalSaleInfo == null) |
|
|
|
{ |
|
|
|
spuTotalSaleInfo = insertSpuTotalSaleInfoList.FirstOrDefault(s => s.ProductId == qtOrderSku.ProductId); |
|
|
|
if (spuTotalSaleInfo == null) |
|
|
|
{ |
|
|
|
spuTotalSaleInfo = new SpuTotalSaleInfo() |
|
|
|
{ |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
IsEnabled = true, |
|
|
|
ItemCount = 0, |
|
|
|
ProductId = qtOrderSku.ProductId, |
|
|
|
ShopId = shopId, |
|
|
|
UpdateTime = DateTime.Now, |
|
|
|
LastOptimizationItemCount = 0 |
|
|
|
}; |
|
|
|
insertSpuTotalSaleInfoList.Add(spuTotalSaleInfo); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (!updateSpuTotalSaleInfoList.Any(s => s.ProductId == qtOrderSku.ProductId)) |
|
|
|
{ |
|
|
|
updateSpuTotalSaleInfoList.Add(spuTotalSaleInfo); |
|
|
|
} |
|
|
|
spuTotalSaleInfo.ItemCount += qtOrderSku.Quantity; |
|
|
|
} |
|
|
|
skuTotalSaleInfo.ItemCount += qtOrderSku.Quantity; |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 检查待议价任务
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 检查限时采购任务
|
|
|
|
CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
@ -333,6 +378,13 @@ namespace BBWYB.Server.Business.Sync |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 检查限时采购任务
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="shopId"></param>
|
|
|
|
/// <param name="orderList"></param>
|
|
|
|
/// <param name="dbTimeLimits"></param>
|
|
|
|
/// <param name="insertTimeLimitTasks"></param>
|
|
|
|
private void CheckPurchaseTimeLimitTask(long shopId, IList<OP_OrderResponse> orderList, IList<TimeLimitTask> dbTimeLimits, List<TimeLimitTask> insertTimeLimitTasks) |
|
|
|
{ |
|
|
|
foreach (var order in orderList) |
|
|
|