diff --git a/SiNan.Business/GOIBusiness.cs b/SiNan.Business/GOIBusiness.cs index bcd0157..f5d2320 100644 --- a/SiNan.Business/GOIBusiness.cs +++ b/SiNan.Business/GOIBusiness.cs @@ -201,16 +201,31 @@ namespace SiNan.Business if (request.PageSize > 5) request.PageSize = 5; - ISelect? skuChildSelect = string.IsNullOrEmpty(request.Sku) ? - null : - fsql.Select().As("ps").Where(ps => ps.ShopId == request.ShopId && ps.Id == request.Sku); + //ISelect? skuChildSelect = string.IsNullOrEmpty(request.Sku) ? + // null : + // fsql.Select().As("ps").Where(ps => ps.ShopId == request.ShopId && ps.Id == request.Sku); + //var productList = fsql.Select().Where(p => p.ShopId == request.ShopId) + // .WhereIf(!string.IsNullOrEmpty(request.Spu), p => p.Id == request.Spu) + // .WhereIf(skuChildSelect != null, p => skuChildSelect.Where(ps => ps.ProductId == p.Id).Any()) + // .OrderByDescending(p => p.CreateTime) + // .Page(request.PageIndex, request.PageSize) + // .Count(out var productCount) + // .ToList(); + var productList = fsql.Select().Where(p => p.ShopId == request.ShopId) + .WhereIf(!string.IsNullOrEmpty(request.SpuTitle), p => p.Title.Contains(request.SpuTitle)) .WhereIf(!string.IsNullOrEmpty(request.Spu), p => p.Id == request.Spu) - .WhereIf(skuChildSelect != null, p => skuChildSelect.Where(ps => ps.ProductId == p.Id).Any()) + .Where(p => fsql.Select() + .InnerJoin((ps, jas) => ps.Id == jas.Sku) + .WhereIf(!string.IsNullOrEmpty(request.Sku), (ps, jas) => ps.Id == request.Sku) + .Where((ps, jas) => jas.ShopId == request.ShopId && ps.ProductId == p.Id) + .Any()) .OrderByDescending(p => p.CreateTime) .Page(request.PageIndex, request.PageSize) .Count(out var productCount) .ToList(); + + if (productList.Count == 0) return new ListResponse() { ItemList = new List() };