Browse Source

采购商品含sku接口新增方案数量

yijia
shanji 2 years ago
parent
commit
7a95770d9a
  1. 29
      BBWYB.Server.Business/Product/ProductBusiness.cs
  2. 3
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  3. 1
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs
  4. 2
      BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs
  5. 9
      BBWYB.Server.Model/Dto/Response/Product/BProductSkuResponse.cs

29
BBWYB.Server.Business/Product/ProductBusiness.cs

@ -2,6 +2,7 @@
using BBWYB.Common.Models;
using BBWYB.Server.Model;
using BBWYB.Server.Model.Dto;
using Microsoft.Extensions.DependencyInjection;
using SDKAdapter.OperationPlatform.Client;
using SDKAdapter.OperationPlatform.Models;
using Yitter.IdGenerator;
@ -11,10 +12,13 @@ namespace BBWYB.Server.Business
public class ProductBusiness : BaseBusiness, IDenpendency
{
private OP_PlatformClientFactory opPlatformClientFactory;
private Lazy<PurchaseSchemeBusiness> purchaseSchemeBusinessLazy;
private PurchaseSchemeBusiness purchaseSchemeBusiness => purchaseSchemeBusinessLazy.Value;
public ProductBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory) : base(fsql, nLogManager, idGenerator)
public ProductBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory, IServiceProvider serviceProvider) : base(fsql, nLogManager, idGenerator)
{
this.opPlatformClientFactory = opPlatformClientFactory;
this.purchaseSchemeBusinessLazy = new Lazy<PurchaseSchemeBusiness>(() => serviceProvider.GetService<PurchaseSchemeBusiness>());
}
public OP_ProductListResponse GetProductList(OP_QueryProductRequest request)
@ -62,6 +66,7 @@ namespace BBWYB.Server.Business
Spu = request.Spu
});
var skuIdList = new List<string>();
if (spuResponse.Items.Count() > 0)
{
foreach (var op_product in spuResponse.Items)
@ -89,11 +94,31 @@ namespace BBWYB.Server.Business
});
if (skuResponse.Count > 0)
{
bproduct.SkuList = skuResponse.Items;
bproduct.SkuList = skuResponse.Items.Select(x => new BProductSkuResponse()
{
CreateTime = x.CreateTime,
Id = x.Id,
Logo = x.Logo,
Price = x.Price,
ProductId = x.ProductId,
State = x.State,
Title = x.Title
}).ToList();
skuIdList.AddRange(skuResponse.Items.Select(s => s.Id));
}
}
}
var schemeCountRes = purchaseSchemeBusiness.GetPurchaseSchemeCountList(new QuerySchemeCountRequest()
{
SkuIdList = skuIdList
});
foreach (var bproduct in list)
{
foreach (var bsku in bproduct.SkuList)
bsku.SchemeCount = schemeCountRes.FirstOrDefault(ps => ps.SkuId == bsku.Id)?.SchemeCount ?? 0;
}
return new BProductListResponse()
{
Count = spuResponse.Count,

3
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -324,8 +324,7 @@ namespace BBWYB.Server.Business
public IList<PurchaseSchemeCountResponse> GetPurchaseSchemeCountList(QuerySchemeCountRequest request)
{
var list = fsql.Select<PurchaseScheme>().Where(ps => ps.ShopId == request.ShopId &&
request.SkuIdList.Contains(ps.SkuId))
var list = fsql.Select<PurchaseScheme>().Where(ps => request.SkuIdList.Contains(ps.SkuId))
.GroupBy(ps => ps.SkuId)
.ToList(g => new PurchaseSchemeCountResponse()
{

1
BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeCountRequest.cs

@ -2,7 +2,6 @@
{
public class QuerySchemeCountRequest
{
public long? ShopId { get; set; }
public IList<string> SkuIdList { get; set; }
}
}

2
BBWYB.Server.Model/Dto/Response/Product/BProductResponse.cs

@ -4,7 +4,7 @@ namespace BBWYB.Server.Model.Dto
{
public class BProductResponse : OP_ProductResponse
{
public IList<OP_ProductSkuResponse> SkuList { get; set; }
public IList<BProductSkuResponse> SkuList { get; set; }
}
public class BProductListResponse

9
BBWYB.Server.Model/Dto/Response/Product/BProductSkuResponse.cs

@ -0,0 +1,9 @@
using SDKAdapter.OperationPlatform.Models;
namespace BBWYB.Server.Model.Dto
{
public class BProductSkuResponse: OP_ProductSkuResponse
{
public int SchemeCount { get; set; }
}
}
Loading…
Cancel
Save