|
@ -401,83 +401,74 @@ namespace BBWYB.Server.Business.Sync |
|
|
!dbSkuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId) && |
|
|
!dbSkuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId) && |
|
|
!insertSkuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId)) |
|
|
!insertSkuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId)) |
|
|
{ |
|
|
{ |
|
|
|
|
|
#region 解析来源店铺数据
|
|
|
|
|
|
JArray belongSkus = null; |
|
|
|
|
|
string sourceShopName = string.Empty; |
|
|
|
|
|
if (!string.IsNullOrEmpty(waitCheckOrder.Extended)) |
|
|
|
|
|
{ |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
var jobject = JObject.Parse(waitCheckOrder.Extended); |
|
|
|
|
|
//dbOrder.SourceSku = jobject.Value<string>("SourceSku");
|
|
|
|
|
|
sourceShopName = jobject.Value<string>("SourceShopName"); |
|
|
|
|
|
|
|
|
|
|
|
if (jobject.ContainsKey("BelongSkus")) |
|
|
|
|
|
belongSkus = jobject["BelongSkus"] as JArray; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 创建待优化任务
|
|
|
var skuOptimizationTask = new SkuOptimizationTask() |
|
|
var skuOptimizationTask = new SkuOptimizationTask() |
|
|
{ |
|
|
{ |
|
|
Id = idGenerator.NewLong(), |
|
|
Id = idGenerator.NewLong(), |
|
|
PreItemCount = 0, |
|
|
PreItemCount = 0, |
|
|
PrePurchasedAmount = 0, |
|
|
PrePurchasedAmount = 0, |
|
|
|
|
|
IsOptimizationCompleted = false, |
|
|
|
|
|
CreateTime = DateTime.Now, |
|
|
|
|
|
SafeWarningRemainingDay = 0, |
|
|
|
|
|
UsePrePurchasedPrice = 0, |
|
|
|
|
|
TriggerOptimizationReason = Enums.TriggerOptimizationReason.首次采购, |
|
|
|
|
|
SkuId = waitCheckOrderSku.SkuId, |
|
|
|
|
|
ShopId = shopId, |
|
|
|
|
|
ProductId = waitCheckOrderSku.ProductId, |
|
|
|
|
|
BelongShopName = sourceShopName, |
|
|
|
|
|
CompletionTime = null, |
|
|
|
|
|
JDSkuId = belongSkus?.FirstOrDefault(j => j.Value<string>("SkuId") == waitCheckOrderSku.SkuId)?.Value<string>("BelongSkuId") ?? string.Empty |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
insertSkuOptimizationTaskList.Add(skuOptimizationTask); |
|
|
insertSkuOptimizationTaskList.Add(skuOptimizationTask); |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 创建待优化限时任务
|
|
|
|
|
|
|
|
|
|
|
|
//判断sku是否首次采购
|
|
|
|
|
|
var isFirst = !dbSkuTotalSaleInfoList.Any(s => s.SkuId == waitCheckOrderSku.SkuId); |
|
|
|
|
|
|
|
|
|
|
|
insertTimeLimitTaskList.Add(new TimeLimitTask() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
|
|
CreateTme = DateTime.Now, |
|
|
|
|
|
//ExpirationTime = DateTime.Now.AddDays(isFirst ? 2 : 1),
|
|
|
|
|
|
ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now.AddDays(isFirst ? 1 : 0)), |
|
|
|
|
|
//OrderId = o.OrderId,
|
|
|
|
|
|
//OrderSn = o.OrderSn,
|
|
|
|
|
|
ShopId = shopId, |
|
|
|
|
|
SkuId = waitCheckOrderSku.SkuId, |
|
|
|
|
|
TaskType = Enums.TimeLimitTaskType.待议价任务, |
|
|
|
|
|
TaskId = skuOptimizationTask.Id, |
|
|
|
|
|
Remark = "首次采购限时任务" |
|
|
|
|
|
}); |
|
|
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var optimizationSpuSaleList = dbSpuTotalSaleInfoList.Union(insertSpuTotalSaleInfoList).Where(s =>
|
|
|
|
|
|
//{
|
|
|
|
|
|
// return GetOptimizationReason(s) != null;
|
|
|
|
|
|
//});
|
|
|
|
|
|
//if (optimizationSpuSaleList.Count() > 0)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// foreach (var spuSale in optimizationSpuSaleList)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// var orderList = waitToCheckSkuSaleOrderList.Where(o => o.OrderSkuList.Any(osku => osku.ProductId == spuSale.ProductId)).ToList();
|
|
|
|
|
|
// foreach (var o in orderList)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// foreach (var osku in o.OrderSkuList)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// if (osku.ProductId != spuSale.ProductId)
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
|
|
|
|
|
|
// var triggerOptimizationReason = GetOptimizationReason(spuSale);
|
|
|
|
|
|
|
|
|
|
|
|
// #region 更新sku优化标记
|
|
|
|
|
|
// var oskuId = long.Parse(osku.Id);
|
|
|
|
|
|
// var insertOrderSku = insertOrderSkuList.FirstOrDefault(s => s.Id == oskuId);
|
|
|
|
|
|
// if (insertOrderSku != null)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// insertOrderSku.IsNeedOptimization = 1;
|
|
|
|
|
|
// insertOrderSku.TriggerOptimizationReason = triggerOptimizationReason;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// //updateOrderSkuIdList_OptimizationFlag.Add(oskuId);
|
|
|
|
|
|
// if (!updateOSkuOptimizationFlagByReasonGroups.TryGetValue(triggerOptimizationReason.Value, out var updateOSkuOptimizationFlagByReasonList))
|
|
|
|
|
|
// {
|
|
|
|
|
|
// updateOSkuOptimizationFlagByReasonList = new List<long>();
|
|
|
|
|
|
// updateOSkuOptimizationFlagByReasonGroups.Add(triggerOptimizationReason.Value, updateOSkuOptimizationFlagByReasonList);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// updateOSkuOptimizationFlagByReasonList.Add(oskuId);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
|
|
|
|
// #region 创建待议价任务
|
|
|
|
|
|
// if (!dbOptimizationLimitTaskList.Any(t => t.OrderId == o.OrderId && t.SkuId == osku.SkuId))
|
|
|
|
|
|
// {
|
|
|
|
|
|
// //判断sku是否首次采购
|
|
|
|
|
|
// var isFirst = !dbSkuTotalSaleInfoList.Any(s => s.SkuId == osku.SkuId);
|
|
|
|
|
|
|
|
|
|
|
|
// insertTimeLimitTaskList.Add(new TimeLimitTask()
|
|
|
|
|
|
// {
|
|
|
|
|
|
// Id = idGenerator.NewLong(),
|
|
|
|
|
|
// CreateTme = DateTime.Now,
|
|
|
|
|
|
// //ExpirationTime = DateTime.Now.AddDays(isFirst ? 2 : 1),
|
|
|
|
|
|
// ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now.AddDays(isFirst ? 1 : 0)),
|
|
|
|
|
|
// OrderId = o.OrderId,
|
|
|
|
|
|
// OrderSn = o.OrderSn,
|
|
|
|
|
|
// ShopId = shopId,
|
|
|
|
|
|
// SkuId = osku.SkuId,
|
|
|
|
|
|
// TaskType = Enums.TimeLimitTaskType.待议价任务
|
|
|
|
|
|
// });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// #endregion
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
@ -500,6 +491,9 @@ namespace BBWYB.Server.Business.Sync |
|
|
if (insertTimeLimitTaskList.Count() > 0) |
|
|
if (insertTimeLimitTaskList.Count() > 0) |
|
|
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows(); |
|
|
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows(); |
|
|
|
|
|
|
|
|
|
|
|
if (insertSkuOptimizationTaskList.Count() > 0) |
|
|
|
|
|
fsql.Insert(insertSkuOptimizationTaskList).ExecuteAffrows(); |
|
|
|
|
|
|
|
|
if (updateOrderList.Count() > 0) |
|
|
if (updateOrderList.Count() > 0) |
|
|
foreach (var update in updateOrderList) |
|
|
foreach (var update in updateOrderList) |
|
|
update.ExecuteAffrows(); |
|
|
update.ExecuteAffrows(); |
|
|