Browse Source

报价时获取交易模式

qianyi
shanji 3 years ago
parent
commit
2d4ab35dd5
  1. 9
      BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/OrderTradeTypeResponse.cs
  2. 5
      BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs
  3. 4
      BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs
  4. 4
      BBWY.Server.Business/BBWY.Server.Business.csproj
  5. 42
      BBWY.Server.Business/PlatformSDK/_1688Business.cs
  6. 9
      BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OrderTradeTypeResponse.cs
  7. 5
      BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs

9
BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/OrderTradeTypeResponse.cs

@ -0,0 +1,9 @@
namespace BBWY.Client.Models
{
public class OrderTradeTypeResponse
{
public string Code { get; set; }
public string Name { get; set; }
}
}

5
BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs

@ -16,5 +16,10 @@
/// 运费
/// </summary>
public decimal FreightAmount { get; set; }
/// <summary>
/// 交易方式
/// </summary>
public OrderTradeTypeResponse OrderTradeType { get; set; }
}
}

4
BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs

@ -51,6 +51,8 @@ namespace BBWY.Client.ViewModels
private string town;
private string prucahseRemark;
private string tradeMode;
public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService)
{
this.oneBoundAPIService = oneBoundAPIService;
@ -209,12 +211,14 @@ namespace BBWY.Client.ViewModels
if (!r.Success)
{
ProductAmount = FreightAmount = TotalAmount = 0;
tradeMode = string.Empty;
App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价"));
return;
}
ProductAmount = r.Data.ProductAmount;
FreightAmount = r.Data.FreightAmount;
TotalAmount = r.Data.TotalAmount;
tradeMode = r.Data.OrderTradeType?.Code;
});
}
}

4
BBWY.Server.Business/BBWY.Server.Business.csproj

@ -21,4 +21,8 @@
<ProjectReference Include="..\BBWY.Server.Model\BBWY.Server.Model.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="新文件夹\" />
</ItemGroup>
</Project>

42
BBWY.Server.Business/PlatformSDK/_1688Business.cs

@ -17,10 +17,12 @@ namespace BBWY.Server.Business
{
public override Enums.Platform Platform => Enums.Platform.;
private RestApiService restApiService;
private _1688TradeTypeCompare _1688TradeTypeCompare;
public _1688Business(IMemoryCache memoryCache, ILogger logger, RestApiService restApiService) : base(memoryCache, logger)
{
this.restApiService = restApiService;
_1688TradeTypeCompare = new _1688TradeTypeCompare();
}
private SyncAPIClient GetSyncAPIClient(string appKey, string appSecret)
@ -82,17 +84,51 @@ namespace BBWY.Server.Business
request.AccessToken = previewOrderReuqest.AppToken;
var result = client.NewRequest(request, reqPolicy);
if (result.Value<bool>("success") != true)
{
throw new BusinessException(result.Value<string>("errorMsg")) { Code = 0 };
}
var orderPreviewResuslt = (JArray)result["orderPreviewResuslt"];
List<JToken> intersectTradeModeList = new List<JToken>();
foreach (var orderPreviewJToken in orderPreviewResuslt)
{
if (orderPreviewJToken["tradeModelList"] == null)
throw new BusinessException("当前交易不可通过API下单,请使用1688网页交易 [交易模式列表为空]");
var tradeModeJArray = ((JArray)orderPreviewJToken["tradeModelList"]).Where(tradeJToken => tradeJToken.Value<bool>("opSupport"));
if (tradeModeJArray.Count() == 0)
throw new BusinessException("当前交易不可通过API下单,请使用1688网页交易 [没有支持开放平台下单的交易模式]");
if (intersectTradeModeList.Count() == 0)
intersectTradeModeList.AddRange(tradeModeJArray);
else
intersectTradeModeList = intersectTradeModeList.Intersect(tradeModeJArray, _1688TradeTypeCompare).ToList();
}
if (intersectTradeModeList.Count() == 0)
throw new BusinessException("当前交易不可通过API下单,请使用1688网页交易 [多个拆单之间没有相同的交易模式]");
return new PreviewOrderResponse()
{
FreightAmount = orderPreviewResuslt.Sum(jt => jt.Value<decimal>("sumCarriage")) / 100M,
ProductAmount = orderPreviewResuslt.Sum(jt => jt.Value<decimal>("sumPaymentNoCarriage")) / 100M,
TotalAmount = orderPreviewResuslt.Sum(jt => jt.Value<decimal>("sumPayment")) / 100M
TotalAmount = orderPreviewResuslt.Sum(jt => jt.Value<decimal>("sumPayment")) / 100M,
OrderTradeType = new OrderTradeTypeResponse()
{
Code = intersectTradeModeList.First().Value<string>("tradeType"),
Name = intersectTradeModeList.First().Value<string>("name"),
}
};
}
}
public class _1688TradeTypeCompare : IEqualityComparer<JToken>
{
public bool Equals(JToken x, JToken y)
{
return x.Value<string>("tradeType").Equals(y.Value<string>("tradeType"));
}
public int GetHashCode(JToken obj)
{
return obj.GetHashCode();
}
}
}

9
BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OrderTradeTypeResponse.cs

@ -0,0 +1,9 @@
namespace BBWY.Server.Model.Dto
{
public class OrderTradeTypeResponse
{
public string Code { get; set; }
public string Name { get; set; }
}
}

5
BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs

@ -16,5 +16,10 @@
/// 运费
/// </summary>
public decimal FreightAmount { get; set; }
/// <summary>
/// 支持的交易方式
/// </summary>
public OrderTradeTypeResponse OrderTradeType { get; set; }
}
}

Loading…
Cancel
Save