Browse Source

更新司南同步spu逻辑

master
shanji 1 year ago
parent
commit
7ec2949f9f
  1. 51
      SiNan.Business/AggregationBusiness.cs

51
SiNan.Business/AggregationBusiness.cs

@ -115,18 +115,45 @@ namespace SiNan.Business
var startDate_aggregationDate = aggregationDate;
var endDate_aggregationDate = aggregationDate.AddDays(1).AddSeconds(-1);
var IsAggregationDateEqualsYesterDay = (DateTime.Now.Date - aggregationDate).TotalDays == 1;
var spuIdList = fsql.Select<Product>().Where(p => p.ShopId == shopId && p.State == 8)
.WhereIf(!string.IsNullOrEmpty(querySpu), p => p.Id == querySpu)
.OrderBy(p => p.CreateTime)
.ToList(p => p.Id);
var skuList = fsql.Select<ProductSku>().Where(ps => ps.ShopId == shopId && ps.State == 1 && ps.Price > 0)
.WhereIf(!string.IsNullOrEmpty(querySpu), ps => ps.ProductId == querySpu)
.OrderBy(ps => ps.CreateTime)
.ToList(ps => new
{
ps.ProductId,
ps.Id
});
var spuQueryStartTime = DateTime.Now.Date.AddDays(-30);
//查询最近30天有销量的spu
var saleSpuList = fsql.Select<OrderSku>().Where(osku => osku.ShopId == shopId && !string.IsNullOrEmpty(osku.ProductId))
.WhereIf(!string.IsNullOrEmpty(querySpu), osku => osku.ProductId == querySpu)
.WhereIf(string.IsNullOrEmpty(querySpu), osku => osku.CreateTime >= spuQueryStartTime)
.OrderByDescending(osku => osku.CreateTime)
.Distinct()
.ToList(osku => osku.ProductId);
//查询最近30天有推广的spu
var popularizeSpuList = fsql.Select<JDPopularizeAdSku, ProductSku>()
.InnerJoin((jas, ps) => jas.Sku == ps.Id)
.Where((jas, ps) => jas.ShopId == shopId && jas.Date >= spuQueryStartTime)
.WhereIf(!string.IsNullOrEmpty(querySpu), (jas, ps) => ps.ProductId == querySpu)
.OrderByDescending((jas, ps) => jas.Date)
.Distinct()
.ToList((jas, ps) => ps.ProductId);
var spuIdList = saleSpuList.Union(popularizeSpuList).Distinct().ToList();
var skuList = fsql.Select<ProductSku>()
.Where(ps => spuIdList.Contains(ps.ProductId) && ps.Price > 0 && ps.State == 1)
.ToList(ps => new { ps.ProductId, ps.Id });
//var spuIdList = fsql.Select<Product>().Where(p => p.ShopId == shopId && p.State == 8)
// .WhereIf(!string.IsNullOrEmpty(querySpu), p => p.Id == querySpu)
// .OrderBy(p => p.CreateTime)
// .ToList(p => p.Id);
//var skuList = fsql.Select<ProductSku>().Where(ps => ps.ShopId == shopId && ps.State == 1 && ps.Price > 0)
// .WhereIf(!string.IsNullOrEmpty(querySpu), ps => ps.ProductId == querySpu)
// .OrderBy(ps => ps.CreateTime)
// .ToList(ps => new
// {
// ps.ProductId,
// ps.Id
// });
var dbAggregationJDPopularizeSpuList = fsql.Select<AggregationJDPopularizeSpu, Product>()
.InnerJoin((aspu, p) => aspu.Id == p.Id)

Loading…
Cancel
Save