|
|
@ -76,12 +76,15 @@ namespace BBWYB.Server.Business |
|
|
|
if (request.RecentDayCondition != null && request.RecentDayCondition.RecentDay > 0) |
|
|
|
{ |
|
|
|
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>() |
|
|
|
.InnerJoin((opi, o) => opi.OrderId == o.Id) |
|
|
|
.Where((opi, o) => opi.ShopId == request.ShopId && |
|
|
|
opi.IsEnabled == true && |
|
|
|
.WhereIf(request.ShopId != null && request.ShopId > 0, (opi, o) => opi.ShopId == request.ShopId) |
|
|
|
.Where((opi, o) => opi.IsEnabled == true && |
|
|
|
o.OrderState != Enums.OrderState.已取消 && |
|
|
|
opi.CreateTime >= recentStartDay) |
|
|
|
.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"); |
|
|
|
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>() |
|
|
|
.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) => ori.OrderId == opi.OrderId) |
|
|
|
.Where((ocd, o, ori, opi) => o.ShopId == request.ShopId && |
|
|
|
o.OrderState != Enums.OrderState.已取消 && |
|
|
|
.WhereIf(request.ShopId != null && request.ShopId > 0, (ocd, o, ori, opi) => o.ShopId == request.ShopId) |
|
|
|
.Where((ocd, o, ori, opi) => o.OrderState != Enums.OrderState.已取消 && |
|
|
|
ocd.IsEnabled == true && |
|
|
|
opi.IsEnabled == true && |
|
|
|
opi.CreateTime >= recentStartDay) |
|
|
@ -125,7 +131,8 @@ namespace BBWYB.Server.Business |
|
|
|
#region 查询SPU绑定数/SKU绑定数
|
|
|
|
var bindList = fsql.Select<PurchaseSchemeProduct, PurchaseScheme>() |
|
|
|
.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 }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
@ -138,7 +145,8 @@ namespace BBWYB.Server.Business |
|
|
|
#region 查询SPU采购数/SKU采购数
|
|
|
|
var purchasedList = fsql.Select<SkuHistoryPurchaserRelation, ProductSku>() |
|
|
|
.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 }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
@ -152,6 +160,7 @@ namespace BBWYB.Server.Business |
|
|
|
#region 查询订单数
|
|
|
|
var poList = fsql.Select<OrderPurchaseInfo, Order>() |
|
|
|
.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 && |
|
|
|
opi.IsEnabled == true && |
|
|
|
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 == ori.OrderId && ocd.SkuId == ori.BelongSkuId) |
|
|
|
.InnerJoin((ocd, o, ori, opi) => ori.OrderId == opi.OrderId) |
|
|
|
.Where((ocd, o, ori, opi) => o.ShopId == request.ShopId && |
|
|
|
o.OrderState != Enums.OrderState.已取消 && |
|
|
|
.WhereIf(request.ShopId != null && request.ShopId > 0, (ocd, o, ori, opi) => o.ShopId == request.ShopId) |
|
|
|
.Where((ocd, o, ori, opi) => o.OrderState != Enums.OrderState.已取消 && |
|
|
|
ocd.IsEnabled == true && |
|
|
|
opi.IsEnabled == true && |
|
|
|
purchaserIdList.Contains(opi.PurchaserId)) |
|
|
@ -185,8 +194,9 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
#region 查询最近采购时间
|
|
|
|
var recentPurchaseTimeList = fsql.Select<OrderPurchaseInfo, Order>() |
|
|
|
.InnerJoin((opi1, o) => o.OrderState != Enums.OrderState.已取消) |
|
|
|
.Where((opi1, o) => opi1.ShopId == request.ShopId && |
|
|
|
.InnerJoin((opi1, o) => opi1.OrderId == o.Id) |
|
|
|
.WhereIf(request.ShopId != null && request.ShopId > 0, (opi1, o) => o.ShopId == request.ShopId) |
|
|
|
.Where((opi1, o) => o.OrderState != Enums.OrderState.已取消 && |
|
|
|
purchaserIdList.Contains(opi1.PurchaserId) && |
|
|
|
opi1.IsEnabled == true) |
|
|
|
.GroupBy((opi1, o) => opi1.PurchaserId) |
|
|
@ -213,6 +223,31 @@ namespace BBWYB.Server.Business |
|
|
|
}); |
|
|
|
#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) |
|
|
|
{ |
|
|
|
#region SPU绑定数/SKU绑定数
|
|
|
@ -257,6 +292,17 @@ namespace BBWYB.Server.Business |
|
|
|
Type = x.Type |
|
|
|
}).ToList(); |
|
|
|
#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
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|