Browse Source

待优化任务条件查询

liangku_skuoptimazation
shanji 1 year ago
parent
commit
3d4313981d
  1. 2
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  2. 1
      BBWYB.Server.Business/Order/OrderBusiness.cs
  3. 7
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  4. 78
      BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs
  5. 10
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  6. 1
      BBWYB.Server.Model/BBWYB.Server.Model.csproj
  7. 2
      BBWYB.Server.Model/Db/SpuOptimization/Spuoptimizationbargainteamtask.cs
  8. 10
      BBWYB.Server.Model/Dto/Request/Optimization/QueryNoCompletionOptimizationTaskRequest.cs
  9. 8
      BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationBargainTeamTaskResponse.cs
  10. 24
      BBWYB.Server.Model/Dto/Response/Optimization/SpuOptimizationTaskResponse.cs
  11. 2
      BBWYB.Server.Model/Dto/Response/Product/SkuOptimizationHistoryResponse.cs
  12. 13
      BBWYB.Server.Model/MappingProfiles.cs

2
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -5,7 +5,6 @@ using BBWYB.Common.Models;
using BBWYB.Server.Model; using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.HY; using BBWYB.Server.Model.Db.HY;
using BBWYB.Server.Model.Db.SpuOptimization;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using FreeSql; using FreeSql;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
@ -16,7 +15,6 @@ using SDKAdapter.PurchasePlatform.Client;
using SDKAdapter.PurchasePlatform.Models; using SDKAdapter.PurchasePlatform.Models;
using System.Data; using System.Data;
using System.Reflection; using System.Reflection;
using System.Text.RegularExpressions;
using Yitter.IdGenerator; using Yitter.IdGenerator;
namespace BBWYB.Server.Business namespace BBWYB.Server.Business

1
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -5,7 +5,6 @@ using BBWYB.Common.Models;
using BBWYB.Server.Business.Extensions; using BBWYB.Server.Business.Extensions;
using BBWYB.Server.Model; using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Db.SpuOptimization;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using FreeSql; using FreeSql;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;

7
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;
using BBWYB.Server.Model.Db.Mds; using BBWYB.Server.Model.Db.Mds;
using BBWYB.Server.Model.Db.MDS; using BBWYB.Server.Model.Db.MDS;
using BBWYB.Server.Model.Db.SpuOptimization;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using FreeSql; using FreeSql;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
@ -333,7 +332,7 @@ namespace BBWYB.Server.Business
List<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>(); List<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>();
List<SkuHistoryPurchaserRelation> insertSkuHistoryPurchaserRelationList = new List<SkuHistoryPurchaserRelation>(); List<SkuHistoryPurchaserRelation> insertSkuHistoryPurchaserRelationList = new List<SkuHistoryPurchaserRelation>();
List<SkuOptimizationHistory> insertSkuOptimizationHistoryList = new List<SkuOptimizationHistory>(); List<SkuOptimizationHistory> insertSkuOptimizationHistoryList = new List<SkuOptimizationHistory>();
List<long> updateSkuOptimizationPurhcasementByIdList = new List<long>(); //List<long> updateSkuOptimizationPurhcasementByIdList = new List<long>();
List<QiKuPackTaskSkuPurchaseSchemeIdRequest> notifyQikuPackSchemeParamList = null; List<QiKuPackTaskSkuPurchaseSchemeIdRequest> notifyQikuPackSchemeParamList = null;
if (dbOrder.IntoStoreType == Enums.IntoStoreType.) if (dbOrder.IntoStoreType == Enums.IntoStoreType.)
@ -796,8 +795,8 @@ namespace BBWYB.Server.Business
foreach (var update in updateOrderSkuCostList) foreach (var update in updateOrderSkuCostList)
update.ExecuteAffrows(); update.ExecuteAffrows();
} }
if (updateSkuOptimizationPurhcasementByIdList.Count() > 0) //if (updateSkuOptimizationPurhcasementByIdList.Count() > 0)
fsql.Update<SkuOptimizationTask>(updateSkuOptimizationPurhcasementByIdList).Set(s => s.IsPurchasementCompleted, true).ExecuteAffrows(); // fsql.Update<SkuOptimizationTask>(updateSkuOptimizationPurhcasementByIdList).Set(s => s.IsPurchasementCompleted, true).ExecuteAffrows();
if (updatePurchaserList.Count() > 0) if (updatePurchaserList.Count() > 0)
{ {

78
BBWYB.Server.Business/SkuOptimization/SkuOptimizationBusiness.cs

@ -171,6 +171,7 @@ namespace BBWYB.Server.Business
var spuOptimizationTask = new SpuOptimizationTask() var spuOptimizationTask = new SpuOptimizationTask()
{ {
Id = idGenerator.NewLong(), Id = idGenerator.NewLong(),
BelongShopId = long.Parse(belongShop.ShopId),
BelongShopName = belongShop.ShopName, BelongShopName = belongShop.ShopName,
CompletionTime = null, CompletionTime = null,
CreateTime = DateTime.Now, 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 uInfo = userBusiness.GetisBargainTeamByUserId(userId, true);
var taskList = fsql.Select<SkuOptimizationTask, TimeLimitTask>() var taskList = fsql.Select<SpuOptimizationTask>()
.InnerJoin((t, tt) => t.Id == tt.TaskId) .Where(t => t.IsOptimizationCompleted == false &&
.Where((t, tt) => t.IsOptimizationCompleted == false) t.CreateTime >= request.StartTime &&
.OrderByDescending((t, tt) => t.CreateTime) 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) .Count(out var total)
.Page(request.PageIndex, request.PageSize) .Page(request.PageIndex, request.PageSize)
.ToList((t, tt) => new SkuOptimizationTask .ToList<SpuOptimizationTaskResponse>();
{
Id = t.Id, var spuTaskIdList = taskList.Select(t => t.Id).ToList();
ShopId = t.ShopId,
BelongShopName = t.BelongShopName, #region 获取议价组任务
JDSkuId = t.JDSkuId, var bargainTeamTaskList = fsql.Select<SpuOptimizationBargainTeamTask>()
ProductId = t.ProductId, .Where(sbt => spuTaskIdList.Contains(sbt.SpuOptimizationTaskId))
SkuId = t.SkuId, .ToList<SpuOptimizationBargainTeamTaskResponse>();
PreItemCount = t.PreItemCount, #endregion
PrePurchasedAmount = t.PrePurchasedAmount,
SafeWarningRemainingDay = t.SafeWarningRemainingDay, #region 限时任务
IsOptimizationCompleted = t.IsOptimizationCompleted, var timelimitTaskList = fsql.Select<TimeLimitTask>()
IsPurchasementCompleted = t.IsPurchasementCompleted, .Where(t => t.TaskType == Enums.TimeLimitTaskType. && spuTaskIdList.Contains(t.TaskId))
CreateTime = t.CreateTime, .ToList<TimeLimitTaskResponse>();
CompletionTime = t.CompletionTime, #endregion
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>();
foreach (var task in taskList) foreach (var task in taskList)
{ {
task.ChildTaskList = childTaskList.Where(ct => ct.OptimizationTaskId == task.Id).ToList(); task.BargainTeamTaskList = bargainTeamTaskList.Where(sbt => sbt.SpuOptimizationTaskId == task.Id).ToList();
var currentChildTask = task.ChildTaskList.FirstOrDefault(ct => ct.BelongTeamId == uInfo.user.DepartmentId); task.TimeLimitTask = timelimitTaskList.FirstOrDefault(t => t.TaskId == task.Id);
task.IsOptimizationCompletedByCurrentTeam = currentChildTask?.IsOptimizationCompleted ?? false; task.IsCompletedByCurrentTeam = task.BargainTeamTaskList.FirstOrDefault(sbt => sbt.BelongTeamId == uInfo.department.Id)?.IsOptimizationCompleted == true;
} }
return new ListResponse<SkuOptimizationTaskResponse>() return new ListResponse<SpuOptimizationTaskResponse>()
{ {
Items = taskList, Items = taskList,
TotalCount = total TotalCount = total

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

@ -411,6 +411,7 @@ namespace BBWYB.Server.Business.Sync
if (noFisrstPurchasedSpuList.Count() > 0) if (noFisrstPurchasedSpuList.Count() > 0)
{ {
var bargainTeamList = venderBusiness.GetYiJiaGroup(); //获取议价组 var bargainTeamList = venderBusiness.GetYiJiaGroup(); //获取议价组
var shopList = venderBusiness.GetShopList(platform: Enums.Platform.);
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) &&
@ -419,6 +420,7 @@ namespace BBWYB.Server.Business.Sync
var waitToCheckOrderSpuGroups = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList).GroupBy(osku => osku.ProductId); var waitToCheckOrderSpuGroups = waitToCheckSkuSaleOrderList.SelectMany(o => o.OrderSkuList).GroupBy(osku => osku.ProductId);
foreach (var spuGroup in waitToCheckOrderSpuGroups) foreach (var spuGroup in waitToCheckOrderSpuGroups)
{ {
if (noFisrstPurchasedSpuList.Contains(spuGroup.Key) && 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 includeSpuOrderList = waitToCheckSkuSaleOrderList.Where(o => o.OrderSkuList.Any(osku => osku.ProductId == spuGroup.Key));
var sourceShopName = string.Empty; var sourceShopName = string.Empty;
long sourceShopId = 0;
//拳探sku-京东sku下单关系映射表 //拳探sku-京东sku下单关系映射表
var mappingQT_JDSKUDictionary = new Dictionary<string, string>(); var mappingQT_JDSKUDictionary = new Dictionary<string, string>();
@ -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 #endregion
#region 读取JDSKU预估金额 #region 读取JDSKU预估金额
@ -475,6 +484,7 @@ namespace BBWYB.Server.Business.Sync
var spuOptimizationTask = new SpuOptimizationTask() var spuOptimizationTask = new SpuOptimizationTask()
{ {
Id = idGenerator.NewLong(), Id = idGenerator.NewLong(),
BelongShopId = sourceShopId,
BelongShopName = sourceShopName, BelongShopName = sourceShopName,
CompletionTime = null, CompletionTime = null,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,

1
BBWYB.Server.Model/BBWYB.Server.Model.csproj

@ -14,7 +14,6 @@
<ItemGroup> <ItemGroup>
<Folder Include="Dto\Request\PurchaseScheme\v2\" /> <Folder Include="Dto\Request\PurchaseScheme\v2\" />
<Folder Include="Dto\Response\Optimization\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

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

@ -40,7 +40,7 @@ namespace BBWYB.Server.Model.Db
/// Spu优化任务Id /// Spu优化任务Id
/// </summary> /// </summary>
[Column(DbType = "bigint")] [Column(DbType = "bigint")]
public long? SpuOptimizationTaskId { get; set; } public long SpuOptimizationTaskId { get; set; }
} }

10
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 public class QueryNoCompletionOptimizationTaskRequest : PageRequest
{ {
@ -15,11 +17,13 @@
/// <summary> /// <summary>
/// 开始时间 /// 开始时间
/// </summary> /// </summary>
public DateTime? StartTime { get; set; } [Required]
public DateTime StartTime { get; set; }
/// <summary> /// <summary>
/// 结束时间 /// 结束时间
/// </summary> /// </summary>
public DateTime? EndTime { get; set;; } [Required]
public DateTime EndTime { get; set; }
} }
} }

8
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
{
}
}

24
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
{
/// <summary>
/// 当前团队是否完成
/// </summary>
public bool IsCompletedByCurrentTeam { get; set; }
/// <summary>
/// 限时任务
/// </summary>
public TimeLimitTaskResponse TimeLimitTask { get; set; }
/// <summary>
/// 议价组子任务列表
/// </summary>
public List<SpuOptimizationBargainTeamTaskResponse> BargainTeamTaskList { get; set; }
}
}

2
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 namespace BBWYB.Server.Model.Dto
{ {

13
BBWYB.Server.Model/MappingProfiles.cs

@ -63,18 +63,7 @@ namespace BBWYB.Server.Model
CreateMap<BatchUpdateCompetitiveTenderQuotationRequest, BatchEditPurchaseSkuActualPriceRequest>(); CreateMap<BatchUpdateCompetitiveTenderQuotationRequest, BatchEditPurchaseSkuActualPriceRequest>();
//CreateMap<SkuOptimizationTask, SkuOptimizationTaskResponse>().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));
} }
} }

Loading…
Cancel
Save