Browse Source

spu销量统计

yijia
shanji 2 years ago
parent
commit
e148cd8614
  1. 64
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  2. 8
      BBWYB.Server.Model/Db/Order/OrderSku.cs

64
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -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,18 +271,17 @@ 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);
#region 统计sku销量
{
var skuTotalSaleInfo = dbSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId);
if (skuTotalSaleInfo == null)
{
skuTotalSaleInfo = insertSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId);
@ -298,10 +306,47 @@ namespace BBWYB.Server.Business.Sync
}
skuTotalSaleInfo.ItemCount += qtOrderSku.Quantity;
}
#endregion
#region 统计spu销量
{
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;
}
#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)

8
BBWYB.Server.Model/Db/Order/OrderSku.cs

@ -104,10 +104,16 @@ namespace BBWYB.Server.Model.Db
public bool? IsCheck { get; set; }
/// <summary>
/// 是否需要议价 是=1 否=0
/// 是否需要优化 是=1 否=0
/// </summary>
[Column(DbType = "int(1)", IsNullable = true)]
public int? IsNeedOptimization { get; set; } = 0;
/// <summary>
/// 是否优化完成 是=1 否=0
/// </summary>
[Column(DbType = "int(1)", IsNullable = true)]
public int? IsOptimizationCompleted { get; set; } = 0;
}
}

Loading…
Cancel
Save