using BBWY.Common.Http; using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Dto; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; using Newtonsoft.Json; using System.Collections.Generic; using System.Net.Http; namespace BBWY.Server.Business { public class ProductBusiness : BasePlatformRelayBusiness, IDenpendency { private IFreeSql fsql; public ProductBusiness(RestApiService restApiService, IConfiguration configuration, IOptions options, YunDingBusiness yunDingBusiness, IFreeSql fsql) : base(restApiService, options, yunDingBusiness) { this.fsql = fsql; } public ProductListResponse GetProductList(SearchProductRequest searchProductRequest) { var relayAPIHost = GetPlatformRelayAPIHost(searchProductRequest.Platform); var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetProductList", searchProductRequest, GetYunDingRequestHeader(), HttpMethod.Post); if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; var response = JsonConvert.DeserializeObject>(sendResult.Content); if (!response.Success) throw new BusinessException(response.Msg) { Code = response.Code }; return response.Data; } public IList GetProductSkuList(SearchProductSkuRequest searchProductSkuRequest) { var relayAPIHost = GetPlatformRelayAPIHost(searchProductSkuRequest.Platform); var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetProductSkuList", searchProductSkuRequest, GetYunDingRequestHeader(), HttpMethod.Post); if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; var response = JsonConvert.DeserializeObject>>(sendResult.Content); if (!response.Success) throw new BusinessException(response.Msg) { Code = response.Code }; return response.Data; } public IList GetProductSkuListFromLocal(SearchProductSkuFromLocalRequest request) { return fsql.Select(request.SkuList).Where(ps => ps.ShopId == request.ShopId).ToList(); } public ProductCategoryResponse GetCategoyrInfo(JDQueryCategoryRequest request) { var relayAPIHost = GetPlatformRelayAPIHost(request.Platform); var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetCategoryInfo", request, GetYunDingRequestHeader(), HttpMethod.Post); if (sendResult.StatusCode != System.Net.HttpStatusCode.OK) throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode }; var response = JsonConvert.DeserializeObject>(sendResult.Content); if (!response.Success) throw new BusinessException(response.Msg) { Code = response.Code }; return response.Data; } } }