Browse Source

订单同步调整 未完

liangku_skuoptimazation
shanji 1 year ago
parent
commit
58035bb015
  1. 297
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  2. 2
      BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs
  3. 5
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs

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

@ -384,142 +384,167 @@ namespace BBWYB.Server.Business.Sync
} }
#endregion #endregion
//#region 检查待议价任务 #region 检查待议价任务
//{ {
// if (waitToCheckSkuSaleOrderList.Count() > 0) if (waitToCheckSkuSaleOrderList.Count() > 0)
// { {
// var skuIdList = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList.Select(osku => osku.SkuId)).Distinct().ToList(); var spuIdList = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList.Select(osku => osku.ProductId)).Distinct().ToList();
// //没有完成首次采购的spu //没有完成首次采购的spu
// var noFisrstPurchasedSpuList = dbSpuTotalSaleInfoList.Union(insertSpuTotalSaleInfoList) var noFisrstPurchasedSpuList = dbSpuTotalSaleInfoList.Union(insertSpuTotalSaleInfoList)
// .Where(s => s.IsFirstPurchaseCompleted == false) .Where(s => s.IsFirstPurchaseCompleted == false)
// .Select(s => s.ProductId) .Select(s => s.ProductId)
// .ToList(); .ToList();
// //查询已存在未结束的优化任务 //查询已存在未结束的优化任务
// var dbSkuOptimizationTaskList = fsql.Select<SkuOptimizationTask>() var dbSpuOptimizationTaskList = fsql.Select<SpuOptimizationTask>()
// .Where(t => t.ShopId == shopId && .Where(t => t.ShopId == shopId &&
// t.IsOptimizationCompleted == false && t.IsOptimizationCompleted == false &&
// skuIdList.Contains(t.SkuId)) spuIdList.Contains(t.ProductId))
// .ToList(); .ToList();
// if (noFisrstPurchasedSpuList.Count() > 0) if (noFisrstPurchasedSpuList.Count() > 0)
// { {
// var bargainTeamList = venderBusiness.GetYiJiaGroup(); //获取议价组 var bargainTeamList = venderBusiness.GetYiJiaGroup(); //获取议价组
// var bargainTeamIdList = bargainTeamList.Select(t => t.Id).ToList(); var bargainTeamIdList = bargainTeamList.Select(t => t.Id).ToList();
// var waitToCompetitiveTenderSchemeList = fsql.Select<PurchaseScheme>() var waitToCompetitiveTenderSchemeList = fsql.Select<PurchaseScheme>()
// .Where(ps => bargainTeamIdList.Contains(ps.BelongBargainTeamId) && .Where(ps => bargainTeamIdList.Contains(ps.BelongBargainTeamId) &&
// skuIdList.Contains(ps.SkuId)) spuIdList.Contains(ps.ProductId))
// .ToList(); //需要参与竞标采购方案 .ToList(); //需要参与竞标采购方案
// foreach (var waitCheckOrder in waitToCheckSkuSaleOrderList)
// { var waitToCheckOrderSpuGroups = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList).GroupBy(osku => osku.ProductId);
// foreach (var waitCheckOrderSku in waitCheckOrder.OrderSkuList) foreach (var spuGroup in waitToCheckOrderSpuGroups)
// { {
// if (noFisrstPurchasedSpuList.Contains(waitCheckOrderSku.ProductId) && if (noFisrstPurchasedSpuList.Contains(spuGroup.Key) &&
// !dbSkuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId) && !dbSpuOptimizationTaskList.Any(t => t.ProductId == spuGroup.Key) &&
// !insertSkuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId)) !insertSpuOptimizationTaskList.Any(t => t.ProductId == spuGroup.Key))
// { {
// #region 解析来源店铺数据 var includeSpuOrderList = waitToCheckSkuSaleOrderList.Where(o => o.OrderSkuList.Any(osku => osku.ProductId == spuGroup.Key));
// JArray belongSkus = null;
// string sourceShopName = string.Empty; var sourceShopName = string.Empty;
// if (!string.IsNullOrEmpty(waitCheckOrder.Extended)) //京东sku-拳探sku下单关系映射表
// { var mappingQT_JDSKUDictionary = new Dictionary<string, string>();
// try
// { #region 解析来源店铺数据
// var jobject = JObject.Parse(waitCheckOrder.Extended); foreach (var waitCheckOrder in includeSpuOrderList)
// //dbOrder.SourceSku = jobject.Value<string>("SourceSku"); {
// sourceShopName = jobject.Value<string>("SourceShopName"); if (!string.IsNullOrEmpty(waitCheckOrder.Extended))
{
// if (jobject.ContainsKey("BelongSkus")) try
// belongSkus = jobject["BelongSkus"] as JArray; {
var jobject = JObject.Parse(waitCheckOrder.Extended);
// } sourceShopName = jobject.Value<string>("SourceShopName");
// catch (Exception ex)
// { if (jobject.ContainsKey("BelongSkus"))
{
// } var jbelongSkus = jobject["BelongSkus"] as JArray;
// } foreach (var j in jbelongSkus)
// #endregion {
var skuId = j.Value<string>("SkuId");
// #region 创建待优化任务 var belongSkuId = j.Value<string>("BelongSkuId");
// var skuOptimizationTask = new SkuOptimizationTask() if (!mappingQT_JDSKUDictionary.ContainsKey(skuId))
// { mappingQT_JDSKUDictionary.TryAdd(skuId, belongSkuId);
// Id = idGenerator.NewLong(), }
// PreItemCount = 0, }
// PrePurchasedAmount = 0, }
// IsOptimizationCompleted = false, catch (Exception ex)
// IsPurchasementCompleted = false, {
// CreateTime = DateTime.Now,
// SafeWarningRemainingDay = 0, }
// TriggerOptimizationReason = Enums.TriggerOptimizationReason.首次采购, }
// SkuId = waitCheckOrderSku.SkuId, }
// ShopId = shopId, #endregion
// ProductId = waitCheckOrderSku.ProductId, }
// BelongShopName = sourceShopName, }
// CompletionTime = null,
// JDSkuId = belongSkus?.FirstOrDefault(j => j.Value<string>("SkuId") == waitCheckOrderSku.SkuId)?.Value<string>("BelongSkuId") ?? string.Empty, foreach (var waitCheckOrder in waitToCheckSkuSaleOrderList)
// LastOptimizationRatio = 0, {
// LastPurchasePrice = 0,
// LastOptimizationTime = null foreach (var waitCheckOrderSku in waitCheckOrder.OrderSkuList)
// }; {
if (noFisrstPurchasedSpuList.Contains(waitCheckOrderSku.ProductId) &&
// insertSkuOptimizationTaskList.Add(skuOptimizationTask); !dbSpuOptimizationTaskList.Any(t => t.ProductId == waitCheckOrderSku.ProductId) &&
// #endregion !insertSpuOptimizationTaskList.Any(t => t.SkuId == waitCheckOrderSku.SkuId))
{
// #region 创建待优化子任务 #region 创建待优化任务
// { var skuOptimizationTask = new SkuOptimizationTask()
// foreach (var department in bargainTeamList) {
// { Id = idGenerator.NewLong(),
// var skuOptimizationChildTask = new SkuOptimizationChildTask() PreItemCount = 0,
// { PrePurchasedAmount = 0,
// Id = idGenerator.NewLong(), IsOptimizationCompleted = false,
// BelongTeamId = department.Id, IsPurchasementCompleted = false,
// BelongTeamName = department.DepartmentName, CreateTime = DateTime.Now,
// CompletionTime = null, SafeWarningRemainingDay = 0,
// IsOptimizationCompleted = false, TriggerOptimizationReason = Enums.TriggerOptimizationReason.,
// OptimizationTaskId = skuOptimizationTask.Id SkuId = waitCheckOrderSku.SkuId,
// }; ShopId = shopId,
// insertSkuOptimizationChildTaskList.Add(skuOptimizationChildTask); ProductId = waitCheckOrderSku.ProductId,
BelongShopName = sourceShopName,
// #region 创建竞标任务 CompletionTime = null,
// var schemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.SkuId == waitCheckOrderSku.SkuId && JDSkuId = belongSkus?.FirstOrDefault(j => j.Value<string>("SkuId") == waitCheckOrderSku.SkuId)?.Value<string>("BelongSkuId") ?? string.Empty,
// ps.BelongBargainTeamId == department.Id) LastOptimizationRatio = 0,
// .ToList(); LastPurchasePrice = 0,
LastOptimizationTime = null
// #endregion };
// }
// } insertSkuOptimizationTaskList.Add(skuOptimizationTask);
// #endregion #endregion
// #region 创建待优化限时任务 #region 创建待优化子任务
{
// //判断sku是否首次采购 foreach (var department in bargainTeamList)
// var isFirst = !dbSkuTotalSaleInfoList.Any(s => s.SkuId == waitCheckOrderSku.SkuId); {
var skuOptimizationChildTask = new SkuOptimizationChildTask()
// insertTimeLimitTaskList.Add(new TimeLimitTask() {
// { Id = idGenerator.NewLong(),
// Id = idGenerator.NewLong(), BelongTeamId = department.Id,
// CreateTme = DateTime.Now, BelongTeamName = department.DepartmentName,
// //ExpirationTime = DateTime.Now.AddDays(isFirst ? 2 : 1), CompletionTime = null,
// ExpirationTime = timeLimitRules.CalculateExpirationTime(Enums.TimeLimitTaskType.待议价任务, DateTime.Now.AddDays(isFirst ? 1 : 0)), IsOptimizationCompleted = false,
// //OrderId = o.OrderId, OptimizationTaskId = skuOptimizationTask.Id
// //OrderSn = o.OrderSn, };
// ShopId = shopId, insertSkuOptimizationChildTaskList.Add(skuOptimizationChildTask);
// SkuId = waitCheckOrderSku.SkuId,
// TaskType = Enums.TimeLimitTaskType.待议价任务, #region 创建竞标任务
// TaskId = skuOptimizationTask.Id, var schemeList = waitToCompetitiveTenderSchemeList.Where(ps => ps.SkuId == waitCheckOrderSku.SkuId &&
// Remark = "首次采购限时任务" ps.BelongBargainTeamId == department.Id)
// }); .ToList();
// #endregion
// } #endregion
// } }
// } }
// } #endregion
// }
//} #region 创建待优化限时任务
//#endregion
//判断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
}
}
}
}
}
}
#endregion
#region 检查限时采购任务 #region 检查限时采购任务
CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList); CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList);

2
BBWYB.Server.Model/Db/SpuOptimization/Skuoptimizationtask.cs

@ -38,7 +38,7 @@ namespace BBWYB.Server.Model.Db
public int? PreSkuCount { get; set; } public int? PreSkuCount { get; set; }
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string QTSkuId { get; set; } public string SkuId { get; set; }
/// <summary> /// <summary>
/// Spu优化任务Id;Spu优化任务Id /// Spu优化任务Id;Spu优化任务Id

5
BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationtask.cs

@ -46,7 +46,10 @@ namespace BBWYB.Server.Model.Db
public bool? IsOptimizationCompleted { get; set; } public bool? IsOptimizationCompleted { get; set; }
[Column(StringLength = 50)] [Column(StringLength = 50)]
public string JDSpuId { get; set; } public string ProductId { get; set; }
[Column(StringLength = 255)]
public string ProductTitle { get; set; }
/// <summary> /// <summary>
/// 上次优化时间;上次优化时间 /// 上次优化时间;上次优化时间

Loading…
Cancel
Save