From 5ea0bd6a52c48dd7dda1110dc814badf215c0898 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Wed, 10 Jan 2024 23:29:39 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=87=87=E8=B4=AD=E5=95=86?=
=?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8F=96=E6=B6=88=E5=A4=A9=E6=95=B0=E6=9D=A1?=
=?UTF-8?q?=E4=BB=B6=EF=BC=8C=E6=9C=80=E8=BF=91=E9=87=87=E8=B4=AD=E5=95=86?=
=?UTF-8?q?=E5=93=81=E6=8C=89=E9=87=87=E8=B4=AD=E6=97=B6=E9=97=B4=E6=8E=92?=
=?UTF-8?q?=E5=80=92=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AggregationPurchaserController.cs | 10 +++++
.../Aggregion/AggregionPurchaserBusiness.cs | 5 +++
.../Purchaser/PurchaserBusiness.cs | 37 ++++++++++---------
.../Product/RecentPurchasedSkuResponse.cs | 2 +
4 files changed, 37 insertions(+), 17 deletions(-)
diff --git a/BBWYB.Server.API/Controllers/AggregationPurchaserController.cs b/BBWYB.Server.API/Controllers/AggregationPurchaserController.cs
index 711cafb..9eb8adf 100644
--- a/BBWYB.Server.API/Controllers/AggregationPurchaserController.cs
+++ b/BBWYB.Server.API/Controllers/AggregationPurchaserController.cs
@@ -21,5 +21,15 @@ namespace BBWYB.Server.API.Controllers
{
aggregionPurchaserBusiness.AutoAggregion();
}
+
+ ///
+ /// 根据指定采购商Id聚合
+ ///
+ ///
+ [HttpPost]
+ public void AggregionByPurchaserIdList([FromBody] IList purchaserIdList)
+ {
+ aggregionPurchaserBusiness.AggregionByPurchaserIdList(purchaserIdList);
+ }
}
}
diff --git a/BBWYB.Server.Business/Aggregion/AggregionPurchaserBusiness.cs b/BBWYB.Server.Business/Aggregion/AggregionPurchaserBusiness.cs
index 1094bed..2b3b456 100644
--- a/BBWYB.Server.Business/Aggregion/AggregionPurchaserBusiness.cs
+++ b/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);
}
+ public void AggregionByPurchaserIdList(IList purchaserIdList)
+ {
+ Task.Factory.StartNew(() => AggregionByGroup(purchaserIdList), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.AggregationPurchaserTaskScheduler);
+ }
+
private void AggregionByGroup(IList purchaserIdList)
{
diff --git a/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs b/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
index 5d720e2..f661147 100644
--- a/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
+++ b/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
@@ -39,7 +39,7 @@ namespace BBWYB.Server.Business
request.ShopId = null;
#region 数据验证
- if (request.RecentDayCondition != null && request.RecentDayCondition.RecentDay > 0)
+ if (request.RecentDayCondition != null) // && request.RecentDayCondition.RecentDay > 0
{
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.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 &&
- request.RecentDayCondition.PurchasedCountComparisonOperator != 0 &&
request.RecentDayCondition.PurchasedCount != null &&
request.RecentDayCondition.PurchasedCount != 0)
{
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.小于,
- p => p.Recent90dPurchasedCount <= request.RecentDayCondition.PurchasedCount)
+ p => p.Recent90dPurchasedCount != null && p.Recent90dPurchasedCount <= request.RecentDayCondition.PurchasedCount)
.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.介于,
- p => p.Recent90dPurchasedCount >= request.RecentDayCondition.PurchasedCount &&
+ p => p.Recent90dPurchasedCount != null && p.Recent90dPurchasedCount >= request.RecentDayCondition.PurchasedCount &&
p.Recent90dPurchasedCount <= request.RecentDayCondition.PurchasedCount2);
}
if (request.RecentDayCondition.PurchasedAmountComparisonOperator != null &&
- request.RecentDayCondition.PurchasedAmountComparisonOperator != 0 &&
request.RecentDayCondition.PurchasedAmount != null &&
request.RecentDayCondition.PurchasedAmount != 0)
{
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.小于,
- p => p.Recent90dPurchasedAmount <= request.RecentDayCondition.PurchasedAmount)
+ p => p.Recent90dPurchasedAmount != null && p.Recent90dPurchasedAmount <= request.RecentDayCondition.PurchasedAmount)
.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.介于,
- p => p.Recent90dPurchasedAmount >= request.RecentDayCondition.PurchasedAmount &&
+ p => p.Recent90dPurchasedAmount != null && p.Recent90dPurchasedAmount >= request.RecentDayCondition.PurchasedAmount &&
p.Recent90dPurchasedAmount <= request.RecentDayCondition.PurchasedAmount2);
}
}
select = select.Page(request.PageIndex, request.PageSize)
.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();
if (purchaserList.Count() > 0)
{
@@ -160,7 +158,8 @@ namespace BBWYB.Server.Business
g.Key.PurchaserId,
g.Key.Logo,
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 belongSkuList = _freeSqlMultiDBManager.BBWYCfsql.Select(belongSkuIdList).ToList(ps => new { ps.Id, ps.Logo });
@@ -192,7 +191,10 @@ namespace BBWYB.Server.Business
#endregion
#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);
return new RecentPurchasedSkuResponse()
@@ -200,7 +202,8 @@ namespace BBWYB.Server.Business
Id = x.Id,
Logo = belongSku?.Logo ?? x.Logo,
SkuName = x.SkuName,
- BelongSku = x.SourceSkuId
+ BelongSku = x.SourceSkuId,
+ MaxPurchasedTime = x.MaxPurchasedTime
};
}).ToList();
#endregion
diff --git a/BBWYB.Server.Model/Dto/Response/Product/RecentPurchasedSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Product/RecentPurchasedSkuResponse.cs
index 0d4d2f0..60f455f 100644
--- a/BBWYB.Server.Model/Dto/Response/Product/RecentPurchasedSkuResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/Product/RecentPurchasedSkuResponse.cs
@@ -15,5 +15,7 @@
/// 归属SkuId(JD)
///
public string BelongSku { get; set; }
+
+ public DateTime? MaxPurchasedTime { get; set; }
}
}