diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index b496ecf..b9c9b8b 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -5,7 +5,6 @@ using BBWYB.Common.Models; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db.HY; -using BBWYB.Server.Model.Db.SpuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Newtonsoft.Json.Linq; @@ -16,7 +15,6 @@ using SDKAdapter.PurchasePlatform.Client; using SDKAdapter.PurchasePlatform.Models; using System.Data; using System.Reflection; -using System.Text.RegularExpressions; using Yitter.IdGenerator; namespace BBWYB.Server.Business diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 7e0e998..1f08dec 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -5,7 +5,6 @@ using BBWYB.Common.Models; using BBWYB.Server.Business.Extensions; using BBWYB.Server.Model; using BBWYB.Server.Model.Db; -using BBWYB.Server.Model.Db.SpuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Microsoft.Extensions.DependencyInjection; diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 71b1f90..a896ded 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -8,7 +8,6 @@ using BBWYB.Server.Model.Core; using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db.Mds; using BBWYB.Server.Model.Db.MDS; -using BBWYB.Server.Model.Db.SpuOptimization; using BBWYB.Server.Model.Dto; using FreeSql; using Microsoft.Extensions.DependencyInjection; @@ -333,7 +332,7 @@ namespace BBWYB.Server.Business List> updatePurchaserList = new List>(); List insertSkuHistoryPurchaserRelationList = new List(); List insertSkuOptimizationHistoryList = new List(); - List updateSkuOptimizationPurhcasementByIdList = new List(); + //List updateSkuOptimizationPurhcasementByIdList = new List(); List notifyQikuPackSchemeParamList = null; if (dbOrder.IntoStoreType == Enums.IntoStoreType.发回齐越) @@ -796,8 +795,8 @@ namespace BBWYB.Server.Business foreach (var update in updateOrderSkuCostList) update.ExecuteAffrows(); } - if (updateSkuOptimizationPurhcasementByIdList.Count() > 0) - fsql.Update(updateSkuOptimizationPurhcasementByIdList).Set(s => s.IsPurchasementCompleted, true).ExecuteAffrows(); + //if (updateSkuOptimizationPurhcasementByIdList.Count() > 0) + // fsql.Update(updateSkuOptimizationPurhcasementByIdList).Set(s => s.IsPurchasementCompleted, true).ExecuteAffrows(); if (updatePurchaserList.Count() > 0) { diff --git a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs index 7b27f57..eda74e2 100644 --- a/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs @@ -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 GetNoCompletionSkuOptimizationTask(QueryNoCompletionOptimizationTaskRequest request, string userId) + public ListResponse GetNoCompletionSkuOptimizationTask(QueryNoCompletionOptimizationTaskRequest request, string userId) { + request.EndTime = request.EndTime.Date; var uInfo = userBusiness.GetisBargainTeamByUserId(userId, true); - var taskList = fsql.Select() - .InnerJoin((t, tt) => t.Id == tt.TaskId) - .Where((t, tt) => t.IsOptimizationCompleted == false) - .OrderByDescending((t, tt) => t.CreateTime) + var taskList = fsql.Select() + .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() + .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 taskIdList = taskList.Select(t => t.Id).ToList(); - var childTaskList = fsql.Select().Where(ct => taskIdList.Contains(ct.OptimizationTaskId)).ToList(); + .ToList(); + + var spuTaskIdList = taskList.Select(t => t.Id).ToList(); + + #region 获取议价组任务 + var bargainTeamTaskList = fsql.Select() + .Where(sbt => spuTaskIdList.Contains(sbt.SpuOptimizationTaskId)) + .ToList(); + #endregion + + #region 限时任务 + var timelimitTaskList = fsql.Select() + .Where(t => t.TaskType == Enums.TimeLimitTaskType.待议价任务 && spuTaskIdList.Contains(t.TaskId)) + .ToList(); + #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() + return new ListResponse() { Items = taskList, TotalCount = total diff --git a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs index 08a9636..1409143 100644 --- a/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWYB.Server.Business/Sync/OrderSyncBusiness.cs @@ -411,6 +411,7 @@ namespace BBWYB.Server.Business.Sync if (noFisrstPurchasedSpuList.Count() > 0) { var bargainTeamList = venderBusiness.GetYiJiaGroup(); //获取议价组 + var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东); var bargainTeamIdList = bargainTeamList.Select(t => t.Id).ToList(); var waitToCompetitiveTenderSchemeList = fsql.Select() .Where(ps => bargainTeamIdList.Contains(ps.BelongBargainTeamId) && @@ -419,6 +420,7 @@ namespace BBWYB.Server.Business.Sync var waitToCheckOrderSpuGroups = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList).GroupBy(osku => osku.ProductId); + foreach (var spuGroup in waitToCheckOrderSpuGroups) { if (noFisrstPurchasedSpuList.Contains(spuGroup.Key) && @@ -428,6 +430,7 @@ namespace BBWYB.Server.Business.Sync var includeSpuOrderList = waitToCheckSkuSaleOrderList.Where(o => o.OrderSkuList.Any(osku => osku.ProductId == spuGroup.Key)); var sourceShopName = string.Empty; + long sourceShopId = 0; //拳探sku-京东sku下单关系映射表 var mappingQT_JDSKUDictionary = new Dictionary(); @@ -459,6 +462,12 @@ namespace BBWYB.Server.Business.Sync } } } + if (!string.IsNullOrEmpty(sourceShopName)) + { + var belongShop = shopList.FirstOrDefault(s => s.ShopName == sourceShopName); + if (belongShop != null) + sourceShopId = long.Parse(belongShop.ShopId); + } #endregion #region 读取JDSKU预估金额 @@ -475,6 +484,7 @@ namespace BBWYB.Server.Business.Sync var spuOptimizationTask = new SpuOptimizationTask() { Id = idGenerator.NewLong(), + BelongShopId = sourceShopId, BelongShopName = sourceShopName, CompletionTime = null, CreateTime = DateTime.Now, diff --git a/BBWYB.Server.Model/BBWYB.Server.Model.csproj b/BBWYB.Server.Model/BBWYB.Server.Model.csproj index e426986..bcfb11f 100644 --- a/BBWYB.Server.Model/BBWYB.Server.Model.csproj +++ b/BBWYB.Server.Model/BBWYB.Server.Model.csproj @@ -14,7 +14,6 @@ - diff --git a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationbargainteamtask.cs b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationbargainteamtask.cs index 19825bd..a26e278 100644 --- a/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationbargainteamtask.cs +++ b/BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationbargainteamtask.cs @@ -40,7 +40,7 @@ namespace BBWYB.Server.Model.Db /// Spu优化任务Id /// [Column(DbType = "bigint")] - public long? SpuOptimizationTaskId { get; set; } + public long SpuOptimizationTaskId { get; set; } } diff --git a/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs b/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs index 45ef5e6..0386fe3 100644 --- a/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs @@ -1,4 +1,6 @@ -namespace BBWYB.Server.Model.Dto +using System.ComponentModel.DataAnnotations; + +namespace BBWYB.Server.Model.Dto { public class QueryNoCompletionOptimizationTaskRequest : PageRequest { @@ -15,11 +17,13 @@ /// /// 开始时间 /// - public DateTime? StartTime { get; set; } + [Required] + public DateTime StartTime { get; set; } /// /// 结束时间 /// - public DateTime? EndTime { get; set;; } + [Required] + public DateTime EndTime { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs new file mode 100644 index 0000000..5ec20a4 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs @@ -0,0 +1,8 @@ +using BBWYB.Server.Model.Db; + +namespace BBWYB.Server.Model.Dto +{ + public class SpuOptimizationBargainTeamTaskResponse : SpuOptimizationBargainTeamTask + { + } +} diff --git a/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs new file mode 100644 index 0000000..a0aacc0 --- /dev/null +++ b/BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs @@ -0,0 +1,24 @@ +using BBWYB.Server.Model.Db; + +namespace BBWYB.Server.Model.Dto +{ + public class SpuOptimizationTaskResponse : SpuOptimizationTask + { + /// + /// 当前团队是否完成 + /// + public bool IsCompletedByCurrentTeam { get; set; } + + /// + /// 限时任务 + /// + public TimeLimitTaskResponse TimeLimitTask { get; set; } + + /// + /// 议价组子任务列表 + /// + public List BargainTeamTaskList { get; set; } + + + } +} diff --git a/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs b/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs index f08893f..b32d4bc 100644 --- a/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs @@ -1,4 +1,4 @@ -using BBWYB.Server.Model.Db.SpuOptimization; +using BBWYB.Server.Model.Db; namespace BBWYB.Server.Model.Dto { diff --git a/BBWYB.Server.Model/MappingProfiles.cs b/BBWYB.Server.Model/MappingProfiles.cs index 2abed1c..2a35bf9 100644 --- a/BBWYB.Server.Model/MappingProfiles.cs +++ b/BBWYB.Server.Model/MappingProfiles.cs @@ -63,18 +63,7 @@ namespace BBWYB.Server.Model CreateMap(); - //CreateMap().ForPath(t => t.TimeLimitTask.Id, opt => opt.MapFrom(f => f.TimeLimitTaskId)) - // .ForPath(t => t.TimeLimitTask.CompletionTime, opt => opt.MapFrom(f => f.TimeLimitTaskCompletionTime)) - // .ForPath(t => t.TimeLimitTask.ExpirationTime, opt => opt.MapFrom(f => f.TimeLimitTaskExpirationTime)) - // .ForPath(t => t.TimeLimitTask.PayTime, opt => opt.MapFrom(f => f.TimeLimitTaskPayTime)) - // .ForPath(t => t.TimeLimitTask.IsTimely, opt => opt.MapFrom(f => f.TimeLimitTaskIsTimely)) - // .ForPath(t => t.TimeLimitTask.CreateTme, opt => opt.MapFrom(f => f.TimeLimitTaskCreateTme)) - // .ForPath(t => t.TimeLimitTask.OrderId, opt => opt.MapFrom(f => f.TimeLimitTaskOrderId)) - // .ForPath(t => t.TimeLimitTask.OrderSn, opt => opt.MapFrom(f => f.TimeLimitTaskOrderSn)) - // .ForPath(t => t.TimeLimitTask.Remark, opt => opt.MapFrom(f => f.TimeLimitTaskRemark)) - // .ForPath(t => t.TimeLimitTask.ShopId, opt => opt.MapFrom(f => f.TimeLimitTaskShopId)) - // .ForPath(t => t.TimeLimitTask.SkuId, opt => opt.MapFrom(f => f.TimeLimitTaskSkuId)) - // .ForPath(t => t.TimeLimitTask.TaskId, opt => opt.MapFrom(f => f.TimeLimitTaskBelongTaskId)); + } }