Browse Source

查询采购商列表取消天数条件,最近采购商品按采购时间排倒序

liangku_skuoptimazation
shanji 1 year ago
parent
commit
5ea0bd6a52
  1. 10
      BBWYB.Server.API/Controllers/AggregationPurchaserController.cs
  2. 5
      BBWYB.Server.Business/Aggregion/AggregionPurchaserBusiness.cs
  3. 37
      BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
  4. 2
      BBWYB.Server.Model/Dto/Response/Product/RecentPurchasedSkuResponse.cs

10
BBWYB.Server.API/Controllers/AggregationPurchaserController.cs

@ -21,5 +21,15 @@ namespace BBWYB.Server.API.Controllers
{ {
aggregionPurchaserBusiness.AutoAggregion(); aggregionPurchaserBusiness.AutoAggregion();
} }
/// <summary>
/// 根据指定采购商Id聚合
/// </summary>
/// <param name="purchaserIdList"></param>
[HttpPost]
public void AggregionByPurchaserIdList([FromBody] IList<string> purchaserIdList)
{
aggregionPurchaserBusiness.AggregionByPurchaserIdList(purchaserIdList);
}
} }
} }

5
BBWYB.Server.Business/Aggregion/AggregionPurchaserBusiness.cs

@ -30,6 +30,11 @@ namespace BBWYB.Server.Business
Task.Factory.StartNew(() => AggregionByGroup(purchaserIdList), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.AggregationPurchaserTaskScheduler); Task.Factory.StartNew(() => AggregionByGroup(purchaserIdList), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.AggregationPurchaserTaskScheduler);
} }
public void AggregionByPurchaserIdList(IList<string> purchaserIdList)
{
Task.Factory.StartNew(() => AggregionByGroup(purchaserIdList), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.AggregationPurchaserTaskScheduler);
}
private void AggregionByGroup(IList<string> purchaserIdList) private void AggregionByGroup(IList<string> purchaserIdList)
{ {

37
BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs

@ -39,7 +39,7 @@ namespace BBWYB.Server.Business
request.ShopId = null; request.ShopId = null;
#region 数据验证 #region 数据验证
if (request.RecentDayCondition != null && request.RecentDayCondition.RecentDay > 0) if (request.RecentDayCondition != null) // && request.RecentDayCondition.RecentDay > 0
{ {
if (request.RecentDayCondition.PurchasedCountComparisonOperator != null) if (request.RecentDayCondition.PurchasedCountComparisonOperator != null)
{ {
@ -78,44 +78,42 @@ namespace BBWYB.Server.Business
.WhereIf(request.LocationList != null && request.LocationList.Count() > 0, p => request.LocationList.Contains(p.Location)) .WhereIf(request.LocationList != null && request.LocationList.Count() > 0, p => request.LocationList.Contains(p.Location))
.WhereIf(request.ManagmentMode != null, p => p.ManagmentMode == request.ManagmentMode); .WhereIf(request.ManagmentMode != null, p => p.ManagmentMode == request.ManagmentMode);
if (request.RecentDayCondition != null && request.RecentDayCondition.RecentDay > 0) if (request.RecentDayCondition != null) // && request.RecentDayCondition.RecentDay > 0
{ {
var recentStartDay = DateTime.Now.Date.AddDays(request.RecentDayCondition.RecentDay.Value * -1); //var recentStartDay = DateTime.Now.Date.AddDays(request.RecentDayCondition.RecentDay.Value * -1);
if (request.RecentDayCondition.PurchasedCountComparisonOperator != null && if (request.RecentDayCondition.PurchasedCountComparisonOperator != null &&
request.RecentDayCondition.PurchasedCountComparisonOperator != 0 &&
request.RecentDayCondition.PurchasedCount != null && request.RecentDayCondition.PurchasedCount != null &&
request.RecentDayCondition.PurchasedCount != 0) request.RecentDayCondition.PurchasedCount != 0)
{ {
select = select.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., select = select.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedCount == request.RecentDayCondition.PurchasedCount) p => p.Recent90dPurchasedCount != null && p.Recent90dPurchasedCount == request.RecentDayCondition.PurchasedCount)
.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., .WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedCount <= request.RecentDayCondition.PurchasedCount) p => p.Recent90dPurchasedCount != null && p.Recent90dPurchasedCount <= request.RecentDayCondition.PurchasedCount)
.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., .WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedCount >= request.RecentDayCondition.PurchasedCount) p => p.Recent90dPurchasedCount != null && p.Recent90dPurchasedCount >= request.RecentDayCondition.PurchasedCount)
.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., .WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedCount >= request.RecentDayCondition.PurchasedCount && p => p.Recent90dPurchasedCount != null && p.Recent90dPurchasedCount >= request.RecentDayCondition.PurchasedCount &&
p.Recent90dPurchasedCount <= request.RecentDayCondition.PurchasedCount2); p.Recent90dPurchasedCount <= request.RecentDayCondition.PurchasedCount2);
} }
if (request.RecentDayCondition.PurchasedAmountComparisonOperator != null && if (request.RecentDayCondition.PurchasedAmountComparisonOperator != null &&
request.RecentDayCondition.PurchasedAmountComparisonOperator != 0 &&
request.RecentDayCondition.PurchasedAmount != null && request.RecentDayCondition.PurchasedAmount != null &&
request.RecentDayCondition.PurchasedAmount != 0) request.RecentDayCondition.PurchasedAmount != 0)
{ {
select = select.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., select = select.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedAmount == request.RecentDayCondition.PurchasedAmount) p => p.Recent90dPurchasedAmount != null && p.Recent90dPurchasedAmount == request.RecentDayCondition.PurchasedAmount)
.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., .WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedAmount <= request.RecentDayCondition.PurchasedAmount) p => p.Recent90dPurchasedAmount != null && p.Recent90dPurchasedAmount <= request.RecentDayCondition.PurchasedAmount)
.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., .WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedAmount >= request.RecentDayCondition.PurchasedAmount) p => p.Recent90dPurchasedAmount != null && p.Recent90dPurchasedAmount >= request.RecentDayCondition.PurchasedAmount)
.WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator., .WhereIf(request.RecentDayCondition.PurchasedCountComparisonOperator == Enums.ComparisonOperator.,
p => p.Recent90dPurchasedAmount >= request.RecentDayCondition.PurchasedAmount && p => p.Recent90dPurchasedAmount != null && p.Recent90dPurchasedAmount >= request.RecentDayCondition.PurchasedAmount &&
p.Recent90dPurchasedAmount <= request.RecentDayCondition.PurchasedAmount2); p.Recent90dPurchasedAmount <= request.RecentDayCondition.PurchasedAmount2);
} }
} }
select = select.Page(request.PageIndex, request.PageSize) select = select.Page(request.PageIndex, request.PageSize)
.OrderByPropertyNameIf(!string.IsNullOrEmpty(request.SortColumn), request.SortColumn, request.SortType == 0); .OrderByPropertyNameIf(!string.IsNullOrEmpty(request.SortColumn), request.SortColumn, request.SortType == 0);
//var sql = pageSelect.ToSql(); var sql = select.ToSql();
var purchaserList = select.Count(out var count).ToList<PurchaserResponse>(); var purchaserList = select.Count(out var count).ToList<PurchaserResponse>();
if (purchaserList.Count() > 0) if (purchaserList.Count() > 0)
{ {
@ -160,7 +158,8 @@ namespace BBWYB.Server.Business
g.Key.PurchaserId, g.Key.PurchaserId,
g.Key.Logo, g.Key.Logo,
g.Key.SkuName, g.Key.SkuName,
g.Key.SourceSkuId g.Key.SourceSkuId,
MaxPurchasedTime = g.Max(g.Value.Item1.CreateTime)
}); });
var belongSkuIdList = bePurchasedProductSkuList.Select(x => x.SourceSkuId).Distinct().ToList(); var belongSkuIdList = bePurchasedProductSkuList.Select(x => x.SourceSkuId).Distinct().ToList();
var belongSkuList = _freeSqlMultiDBManager.BBWYCfsql.Select<BBWYB.Server.Model.Db.BBWY.ProductSku>(belongSkuIdList).ToList(ps => new { ps.Id, ps.Logo }); var belongSkuList = _freeSqlMultiDBManager.BBWYCfsql.Select<BBWYB.Server.Model.Db.BBWY.ProductSku>(belongSkuIdList).ToList(ps => new { ps.Id, ps.Logo });
@ -192,7 +191,10 @@ namespace BBWYB.Server.Business
#endregion #endregion
#region 最近采购店铺商品 #region 最近采购店铺商品
purchaser.Recent30dProductSku = bePurchasedProductSkuList.Where(x => x.PurchaserId == purchaser.Id).Take(10).Select(x => purchaser.Recent30dProductSku = bePurchasedProductSkuList.Where(x => x.PurchaserId == purchaser.Id)
.OrderByDescending(x => x.MaxPurchasedTime)
.Take(10)
.Select(x =>
{ {
var belongSku = belongSkuList.FirstOrDefault(b => b.Id == x.SourceSkuId); var belongSku = belongSkuList.FirstOrDefault(b => b.Id == x.SourceSkuId);
return new RecentPurchasedSkuResponse() return new RecentPurchasedSkuResponse()
@ -200,7 +202,8 @@ namespace BBWYB.Server.Business
Id = x.Id, Id = x.Id,
Logo = belongSku?.Logo ?? x.Logo, Logo = belongSku?.Logo ?? x.Logo,
SkuName = x.SkuName, SkuName = x.SkuName,
BelongSku = x.SourceSkuId BelongSku = x.SourceSkuId,
MaxPurchasedTime = x.MaxPurchasedTime
}; };
}).ToList(); }).ToList();
#endregion #endregion

2
BBWYB.Server.Model/Dto/Response/Product/RecentPurchasedSkuResponse.cs

@ -15,5 +15,7 @@
/// 归属SkuId(JD) /// 归属SkuId(JD)
/// </summary> /// </summary>
public string BelongSku { get; set; } public string BelongSku { get; set; }
public DateTime? MaxPurchasedTime { get; set; }
} }
} }

Loading…
Cancel
Save