|
|
@ -171,6 +171,7 @@ namespace BBWYB.Server.Business |
|
|
|
var spuOptimizationTask = new SpuOptimizationTask() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
BelongShopId = long.Parse(belongShop.ShopId), |
|
|
|
BelongShopName = belongShop.ShopName, |
|
|
|
CompletionTime = null, |
|
|
|
CreateTime = DateTime.Now, |
|
|
@ -507,61 +508,46 @@ namespace BBWYB.Server.Business |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
public ListResponse<SkuOptimizationTaskResponse> GetNoCompletionSkuOptimizationTask(QueryNoCompletionOptimizationTaskRequest request, string userId) |
|
|
|
public ListResponse<SpuOptimizationTaskResponse> GetNoCompletionSkuOptimizationTask(QueryNoCompletionOptimizationTaskRequest request, string userId) |
|
|
|
{ |
|
|
|
request.EndTime = request.EndTime.Date; |
|
|
|
var uInfo = userBusiness.GetisBargainTeamByUserId(userId, true); |
|
|
|
var taskList = fsql.Select<SkuOptimizationTask, TimeLimitTask>() |
|
|
|
.InnerJoin((t, tt) => t.Id == tt.TaskId) |
|
|
|
.Where((t, tt) => t.IsOptimizationCompleted == false) |
|
|
|
.OrderByDescending((t, tt) => t.CreateTime) |
|
|
|
var taskList = fsql.Select<SpuOptimizationTask>() |
|
|
|
.Where(t => t.IsOptimizationCompleted == false && |
|
|
|
t.CreateTime >= request.StartTime && |
|
|
|
t.CreateTime <= request.EndTime) |
|
|
|
.WhereIf(request.BelongShopId != null && request.BelongShopId != 0, t => t.BelongShopId == request.BelongShopId) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.JDSku), t => fsql.Select<SkuOptimizationTask>() |
|
|
|
.Where(st => st.SpuOptimizationTaskId == t.Id && |
|
|
|
st.JDSkuId == request.JDSku) |
|
|
|
.Any()) |
|
|
|
.OrderByDescending(t => t.CreateTime) |
|
|
|
.Count(out var total) |
|
|
|
.Page(request.PageIndex, request.PageSize) |
|
|
|
.ToList((t, tt) => new SkuOptimizationTask |
|
|
|
{ |
|
|
|
Id = t.Id, |
|
|
|
ShopId = t.ShopId, |
|
|
|
BelongShopName = t.BelongShopName, |
|
|
|
JDSkuId = t.JDSkuId, |
|
|
|
ProductId = t.ProductId, |
|
|
|
SkuId = t.SkuId, |
|
|
|
PreItemCount = t.PreItemCount, |
|
|
|
PrePurchasedAmount = t.PrePurchasedAmount, |
|
|
|
SafeWarningRemainingDay = t.SafeWarningRemainingDay, |
|
|
|
IsOptimizationCompleted = t.IsOptimizationCompleted, |
|
|
|
IsPurchasementCompleted = t.IsPurchasementCompleted, |
|
|
|
CreateTime = t.CreateTime, |
|
|
|
CompletionTime = t.CompletionTime, |
|
|
|
TriggerOptimizationReason = t.TriggerOptimizationReason, |
|
|
|
LastOptimizationRatio = t.LastOptimizationRatio, |
|
|
|
LastPurchasePrice = t.LastPurchasePrice, |
|
|
|
LastOptimizationTime = t.LastOptimizationTime, |
|
|
|
|
|
|
|
TimeLimitTaskId = tt.Id, |
|
|
|
TimeLimitTaskBelongTaskId = tt.TaskId, |
|
|
|
TimeLimitTaskCompletionTime = tt.CompletionTime, |
|
|
|
TimeLimitTaskCreateTme = tt.CreateTme, |
|
|
|
TimeLimitTaskExpirationTime = tt.ExpirationTime, |
|
|
|
TimeLimitTaskIsTimely = tt.IsTimely, |
|
|
|
TimeLimitTaskOrderId = tt.OrderId, |
|
|
|
TimeLimitTaskOrderSn = tt.OrderSn, |
|
|
|
TimeLimitTaskPayTime = tt.PayTime, |
|
|
|
TimeLimitTaskRemark = tt.Remark, |
|
|
|
TimeLimitTaskShopId = tt.ShopId, |
|
|
|
TimeLimitTaskSkuId = tt.SkuId, |
|
|
|
TimeLimitTaskTaskType = tt.TaskType |
|
|
|
}).Map<List<SkuOptimizationTaskResponse>>(); |
|
|
|
|
|
|
|
List<long> taskIdList = taskList.Select(t => t.Id).ToList(); |
|
|
|
var childTaskList = fsql.Select<SkuOptimizationChildTask>().Where(ct => taskIdList.Contains(ct.OptimizationTaskId)).ToList<SkuOptimizationChildTaskResponse>(); |
|
|
|
.ToList<SpuOptimizationTaskResponse>(); |
|
|
|
|
|
|
|
var spuTaskIdList = taskList.Select(t => t.Id).ToList(); |
|
|
|
|
|
|
|
#region 获取议价组任务
|
|
|
|
var bargainTeamTaskList = fsql.Select<SpuOptimizationBargainTeamTask>() |
|
|
|
.Where(sbt => spuTaskIdList.Contains(sbt.SpuOptimizationTaskId)) |
|
|
|
.ToList<SpuOptimizationBargainTeamTaskResponse>(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 限时任务
|
|
|
|
var timelimitTaskList = fsql.Select<TimeLimitTask>() |
|
|
|
.Where(t => t.TaskType == Enums.TimeLimitTaskType.待议价任务 && spuTaskIdList.Contains(t.TaskId)) |
|
|
|
.ToList<TimeLimitTaskResponse>(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
foreach (var task in taskList) |
|
|
|
{ |
|
|
|
task.ChildTaskList = childTaskList.Where(ct => ct.OptimizationTaskId == task.Id).ToList(); |
|
|
|
var currentChildTask = task.ChildTaskList.FirstOrDefault(ct => ct.BelongTeamId == uInfo.user.DepartmentId); |
|
|
|
task.IsOptimizationCompletedByCurrentTeam = currentChildTask?.IsOptimizationCompleted ?? false; |
|
|
|
task.BargainTeamTaskList = bargainTeamTaskList.Where(sbt => sbt.SpuOptimizationTaskId == task.Id).ToList(); |
|
|
|
task.TimeLimitTask = timelimitTaskList.FirstOrDefault(t => t.TaskId == task.Id); |
|
|
|
task.IsCompletedByCurrentTeam = task.BargainTeamTaskList.FirstOrDefault(sbt => sbt.BelongTeamId == uInfo.department.Id)?.IsOptimizationCompleted == true; |
|
|
|
} |
|
|
|
|
|
|
|
return new ListResponse<SkuOptimizationTaskResponse>() |
|
|
|
return new ListResponse<SpuOptimizationTaskResponse>() |
|
|
|
{ |
|
|
|
Items = taskList, |
|
|
|
TotalCount = total |
|
|
|