using BBWY.Common.Http; using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Dto; using Microsoft.Extensions.Caching.Memory; using QuanTan.SDK.Client; using QuanTan.SDK.Model; using System.Linq; namespace BBWY.Server.Business { public class QuanTanBusiness : PlatformSDKBusiness { public override Enums.Platform Platform => Enums.Platform.拳探; private QuanTanOrderClient quanTanOrderClient; public QuanTanBusiness(IMemoryCache memoryCache, NLogManager nLogManager, RestApiService restApiService) : base(memoryCache, nLogManager) { this.quanTanOrderClient = new QuanTanOrderClient(restApiService); } public override PreviewOrderResponse PreviewOrder(PreviewOrderReuqest previewOrderReuqest) { var quantanPreviewOrderRequest = new QuanTanPreviewOrderRequest() { userAccount = previewOrderReuqest.AppToken, receipt = new QuanTanPreviewOrderReceipt() { province = previewOrderReuqest.Consignee.Province, city = previewOrderReuqest.Consignee.City, area = previewOrderReuqest.Consignee.County, town = previewOrderReuqest.Consignee.Town, address = previewOrderReuqest.Consignee.Address, phone = previewOrderReuqest.Consignee.Mobile, realName = previewOrderReuqest.Consignee.ContactName }, buyInfo = previewOrderReuqest.CargoParamList.Select(p => new QuanTanPreviewOrderProduct() { productId = p.ProductId, productSku = p.SkuId, quantity = p.Quantity }).ToList() }; var qtResponse = quanTanOrderClient.PreviewOrder(quantanPreviewOrderRequest, previewOrderReuqest.AppKey, previewOrderReuqest.AppSecret); if (qtResponse.Status != 200) throw new BusinessException(qtResponse.Message); return new PreviewOrderResponse() { TotalAmount = qtResponse.Data.TotalPrice, FreightAmount = qtResponse.Data.PostagePrice, ProductAmount = qtResponse.Data.ProductPrice, Extensions = qtResponse.Data.CartIds //OrderTradeType= new OrderTradeTypeResponse() }; } } }