Browse Source

采购商列表返回最近采购商品

liangku_skuoptimazation
shanji 1 year ago
parent
commit
792afed188
  1. 70
      BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
  2. 2
      BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserRequest.cs

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

@ -76,12 +76,15 @@ namespace BBWYB.Server.Business
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 != 0)
{ {
var childSelect = fsql.Select<OrderPurchaseInfo, Order>() var childSelect = fsql.Select<OrderPurchaseInfo, Order>()
.InnerJoin((opi, o) => opi.OrderId == o.Id) .InnerJoin((opi, o) => opi.OrderId == o.Id)
.Where((opi, o) => opi.ShopId == request.ShopId && .WhereIf(request.ShopId != null && request.ShopId > 0, (opi, o) => opi.ShopId == request.ShopId)
opi.IsEnabled == true && .Where((opi, o) => opi.IsEnabled == true &&
o.OrderState != Enums.OrderState. && o.OrderState != Enums.OrderState. &&
opi.CreateTime >= recentStartDay) opi.CreateTime >= recentStartDay)
.GroupBy((opi, o) => opi.PurchaserId) .GroupBy((opi, o) => opi.PurchaserId)
@ -92,14 +95,17 @@ namespace BBWYB.Server.Business
.WithTempQuery(g => new { g.Value.Item1.PurchaserId, Count = g.Count() }).As("pcc"); .WithTempQuery(g => new { g.Value.Item1.PurchaserId, Count = g.Count() }).As("pcc");
select = select.Where(p => childSelect.Where(pcc => pcc.PurchaserId == p.Id).Any()); select = select.Where(p => childSelect.Where(pcc => pcc.PurchaserId == p.Id).Any());
} }
if (request.RecentDayCondition.PurchasedAmountComparisonOperator != null) if (request.RecentDayCondition.PurchasedAmountComparisonOperator != null &&
request.RecentDayCondition.PurchasedAmountComparisonOperator != 0 &&
request.RecentDayCondition.PurchasedAmount != null &&
request.RecentDayCondition.PurchasedAmount != 0)
{ {
var childSelect = fsql.Select<OrderCostDetail, Order, OrderPurchaseRelationInfo, OrderPurchaseInfo>() var childSelect = fsql.Select<OrderCostDetail, Order, OrderPurchaseRelationInfo, OrderPurchaseInfo>()
.InnerJoin((ocd, o, ori, opi) => ocd.OrderId == o.Id) .InnerJoin((ocd, o, ori, opi) => ocd.OrderId == o.Id)
.InnerJoin((ocd, o, ori, opi) => ocd.OrderId == ori.OrderId && ocd.SkuId == ori.BelongSkuId) .InnerJoin((ocd, o, ori, opi) => ocd.OrderId == ori.OrderId && ocd.SkuId == ori.BelongSkuId)
.InnerJoin((ocd, o, ori, opi) => ori.OrderId == opi.OrderId) .InnerJoin((ocd, o, ori, opi) => ori.OrderId == opi.OrderId)
.Where((ocd, o, ori, opi) => o.ShopId == request.ShopId && .WhereIf(request.ShopId != null && request.ShopId > 0, (ocd, o, ori, opi) => o.ShopId == request.ShopId)
o.OrderState != Enums.OrderState. && .Where((ocd, o, ori, opi) => o.OrderState != Enums.OrderState. &&
ocd.IsEnabled == true && ocd.IsEnabled == true &&
opi.IsEnabled == true && opi.IsEnabled == true &&
opi.CreateTime >= recentStartDay) opi.CreateTime >= recentStartDay)
@ -125,7 +131,8 @@ namespace BBWYB.Server.Business
#region 查询SPU绑定数/SKU绑定数 #region 查询SPU绑定数/SKU绑定数
var bindList = fsql.Select<PurchaseSchemeProduct, PurchaseScheme>() var bindList = fsql.Select<PurchaseSchemeProduct, PurchaseScheme>()
.InnerJoin((psp, psc) => psp.SkuPurchaseSchemeId == psc.Id) .InnerJoin((psp, psc) => psp.SkuPurchaseSchemeId == psc.Id)
.Where((psp, psc) => psc.ShopId == request.ShopId && purchaserIdList.Contains(psp.PurchaserId)) .WhereIf(request.ShopId != null && request.ShopId > 0, (psp, psc) => psc.ShopId == request.ShopId)
.Where((psp, psc) => purchaserIdList.Contains(psp.PurchaserId))
.GroupBy((psp, psc) => new { psp.PurchaserId, psp.ProductId, psp.SkuId }) .GroupBy((psp, psc) => new { psp.PurchaserId, psp.ProductId, psp.SkuId })
.ToList(g => new .ToList(g => new
{ {
@ -138,7 +145,8 @@ namespace BBWYB.Server.Business
#region 查询SPU采购数/SKU采购数 #region 查询SPU采购数/SKU采购数
var purchasedList = fsql.Select<SkuHistoryPurchaserRelation, ProductSku>() var purchasedList = fsql.Select<SkuHistoryPurchaserRelation, ProductSku>()
.InnerJoin((spr, ps) => spr.SkuId == ps.Id) .InnerJoin((spr, ps) => spr.SkuId == ps.Id)
.Where((spr, ps) => ps.ShopId == request.ShopId && purchaserIdList.Contains(spr.PurchaserId)) .WhereIf(request.ShopId != null && request.ShopId > 0, (spr, ps) => spr.ShopId == request.ShopId)
.Where((spr, ps) => purchaserIdList.Contains(spr.PurchaserId))
.GroupBy((spr, ps) => new { spr.PurchaserId, spr.SkuId, ps.ProductId }) .GroupBy((spr, ps) => new { spr.PurchaserId, spr.SkuId, ps.ProductId })
.ToList(g => new .ToList(g => new
{ {
@ -152,6 +160,7 @@ namespace BBWYB.Server.Business
#region 查询订单数 #region 查询订单数
var poList = fsql.Select<OrderPurchaseInfo, Order>() var poList = fsql.Select<OrderPurchaseInfo, Order>()
.InnerJoin((opi, o) => opi.OrderId == o.Id) .InnerJoin((opi, o) => opi.OrderId == o.Id)
.WhereIf(request.ShopId != null && request.ShopId > 0, (opi, o) => opi.ShopId == request.ShopId)
.Where((opi, o) => opi.ShopId == request.ShopId && .Where((opi, o) => opi.ShopId == request.ShopId &&
opi.IsEnabled == true && opi.IsEnabled == true &&
o.OrderState != Enums.OrderState. && o.OrderState != Enums.OrderState. &&
@ -170,8 +179,8 @@ namespace BBWYB.Server.Business
.InnerJoin((ocd, o, ori, opi) => ocd.OrderId == o.Id) .InnerJoin((ocd, o, ori, opi) => ocd.OrderId == o.Id)
.InnerJoin((ocd, o, ori, opi) => ocd.OrderId == ori.OrderId && ocd.SkuId == ori.BelongSkuId) .InnerJoin((ocd, o, ori, opi) => ocd.OrderId == ori.OrderId && ocd.SkuId == ori.BelongSkuId)
.InnerJoin((ocd, o, ori, opi) => ori.OrderId == opi.OrderId) .InnerJoin((ocd, o, ori, opi) => ori.OrderId == opi.OrderId)
.Where((ocd, o, ori, opi) => o.ShopId == request.ShopId && .WhereIf(request.ShopId != null && request.ShopId > 0, (ocd, o, ori, opi) => o.ShopId == request.ShopId)
o.OrderState != Enums.OrderState. && .Where((ocd, o, ori, opi) => o.OrderState != Enums.OrderState. &&
ocd.IsEnabled == true && ocd.IsEnabled == true &&
opi.IsEnabled == true && opi.IsEnabled == true &&
purchaserIdList.Contains(opi.PurchaserId)) purchaserIdList.Contains(opi.PurchaserId))
@ -185,8 +194,9 @@ namespace BBWYB.Server.Business
#region 查询最近采购时间 #region 查询最近采购时间
var recentPurchaseTimeList = fsql.Select<OrderPurchaseInfo, Order>() var recentPurchaseTimeList = fsql.Select<OrderPurchaseInfo, Order>()
.InnerJoin((opi1, o) => o.OrderState != Enums.OrderState.) .InnerJoin((opi1, o) => opi1.OrderId == o.Id)
.Where((opi1, o) => opi1.ShopId == request.ShopId && .WhereIf(request.ShopId != null && request.ShopId > 0, (opi1, o) => o.ShopId == request.ShopId)
.Where((opi1, o) => o.OrderState != Enums.OrderState. &&
purchaserIdList.Contains(opi1.PurchaserId) && purchaserIdList.Contains(opi1.PurchaserId) &&
opi1.IsEnabled == true) opi1.IsEnabled == true)
.GroupBy((opi1, o) => opi1.PurchaserId) .GroupBy((opi1, o) => opi1.PurchaserId)
@ -213,6 +223,31 @@ namespace BBWYB.Server.Business
}); });
#endregion #endregion
#region 最近采购的店铺商品
var recent30d = DateTime.Now.AddDays(-30);
var bePurchasedProductSkuList = fsql.Select<OrderPurchaseInfo, OrderPurchaseRelationInfo, Order, ProductSku>()
.InnerJoin((opi, opri, o, ps) => opi.OrderId == o.Id)
.InnerJoin((opi, opri, o, ps) => opri.PurchaseOrderId == opi.PurchaseOrderId)
.InnerJoin((opi, opri, o, ps) => opri.BelongSkuId == ps.Id)
.WhereIf(request.ShopId != null && request.ShopId > 0, (opi, opri, o, ps) => o.ShopId == request.ShopId)
.Where((opi, opri, o, ps) => o.OrderState != Enums.OrderState. &&
opi.IsEnabled == true &&
opi.CreateTime >= recent30d &&
purchaserIdList.Contains(opi.PurchaserId))
.OrderByDescending((opi, opri, o, ps) => opi.CreateTime)
.ToList((opi, opri, o, ps) => new
{
opi.PurchaserId,
ps.Id,
ps.Logo,
ps.SkuName,
ps.Price,
opi.CreateTime
});
#endregion
foreach (var purchaser in purchaserList) foreach (var purchaser in purchaserList)
{ {
#region SPU绑定数/SKU绑定数 #region SPU绑定数/SKU绑定数
@ -257,6 +292,17 @@ namespace BBWYB.Server.Business
Type = x.Type Type = x.Type
}).ToList(); }).ToList();
#endregion #endregion
#region 最近采购店铺商品
purchaser.Recent30dProductSku = bePurchasedProductSkuList.Where(x => x.PurchaserId == purchaser.Id).Take(10).Select(x => new ProductSkuResponse()
{
Id = x.Id,
Logo = x.Logo,
SkuName = x.SkuName,
Price = x.Price
}).ToList();
#endregion
} }
} }

2
BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserRequest.cs

@ -5,7 +5,7 @@ namespace BBWYB.Server.Model.Dto
public class QueryPurchaserRequest public class QueryPurchaserRequest
{ {
[Required] [Required]
public long ShopId { get; set; } public long? ShopId { get; set; }
public string Spu { get; set; } public string Spu { get; set; }

Loading…
Cancel
Save