步步为盈
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.4 KiB

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()
};
}
}
}