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.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

1
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;

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.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<IUpdate<Purchaser>> updatePurchaserList = new List<IUpdate<Purchaser>>();
List<SkuHistoryPurchaserRelation> insertSkuHistoryPurchaserRelationList = new List<SkuHistoryPurchaserRelation>();
List<SkuOptimizationHistory> insertSkuOptimizationHistoryList = new List<SkuOptimizationHistory>();
List<long> updateSkuOptimizationPurhcasementByIdList = new List<long>();
//List<long> updateSkuOptimizationPurhcasementByIdList = new List<long>();
List<QiKuPackTaskSkuPurchaseSchemeIdRequest> 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<SkuOptimizationTask>(updateSkuOptimizationPurhcasementByIdList).Set(s => s.IsPurchasementCompleted, true).ExecuteAffrows();
//if (updateSkuOptimizationPurhcasementByIdList.Count() > 0)
// fsql.Update<SkuOptimizationTask>(updateSkuOptimizationPurhcasementByIdList).Set(s => s.IsPurchasementCompleted, true).ExecuteAffrows();
if (updatePurchaserList.Count() > 0)
{

78
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<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

10
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<PurchaseScheme>()
.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<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
#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,

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

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

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

@ -40,7 +40,7 @@ namespace BBWYB.Server.Model.Db
/// Spu优化任务Id
/// </summary>
[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
{
@ -15,11 +17,13 @@
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartTime { get; set; }
[Required]
public DateTime StartTime { get; set; }
/// <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
{

13
BBWYB.Server.Model/MappingProfiles.cs

@ -63,18 +63,7 @@ namespace BBWYB.Server.Model
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