|
|
@ -2,14 +2,18 @@ |
|
|
|
using BBWY.Common.Http; |
|
|
|
using BBWY.Common.Models; |
|
|
|
using BBWY.Server.Model; |
|
|
|
using BBWY.Server.Model.Db; |
|
|
|
using BBWY.Server.Model.Dto; |
|
|
|
using com.alibaba.openapi.client; |
|
|
|
using com.alibaba.openapi.client.policy; |
|
|
|
using Microsoft.Extensions.Caching.Memory; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using Newtonsoft.Json.Linq; |
|
|
|
using NLog; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
|
|
|
|
namespace BBWY.Server.Business |
|
|
|
{ |
|
|
@ -118,7 +122,7 @@ namespace BBWY.Server.Business |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
public override void FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest) |
|
|
|
public override CreateOnlinePurchaseOrderResponse FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest) |
|
|
|
{ |
|
|
|
var client = GetSyncAPIClient(createOnlinePurchaseOrderRequest.AppKey, createOnlinePurchaseOrderRequest.AppSecret); |
|
|
|
RequestPolicy reqPolicy = new RequestPolicy(); |
|
|
@ -167,8 +171,29 @@ namespace BBWY.Server.Business |
|
|
|
if (result.Value<bool>("success") != true) |
|
|
|
throw new BusinessException(result.Value<string>("errorMsg")) { Code = 0 }; |
|
|
|
|
|
|
|
var totalSuccessAmount = result["result"].Value<decimal>("totalSuccessAmount") / 100M; //采购总金额
|
|
|
|
var totalSuccessAmount = result["result"].Value<long>("totalSuccessAmount") / 100M; //采购单总金额,单位分
|
|
|
|
var purchaseOrderId = result["result"].Value<string>("orderId"); //采购单号
|
|
|
|
var postFee = result["result"].Value<long>("postFee") / 100M; //采购单运费,单位分
|
|
|
|
var purchaseAmount = totalSuccessAmount - postFee; //采购成本
|
|
|
|
|
|
|
|
var failedOfferJArray = result["failedOfferList"] != null ? (JArray)result["failedOfferList"] : null; |
|
|
|
if (failedOfferJArray != null) |
|
|
|
{ |
|
|
|
StringBuilder failOrderStringBuilder = new StringBuilder(); |
|
|
|
foreach (var failedOfferJToken in failedOfferJArray) |
|
|
|
failOrderStringBuilder.AppendLine(failedOfferJToken.ToString()); |
|
|
|
var ex = new Exception(failOrderStringBuilder.ToString()); |
|
|
|
logger.Error(ex, $"下单部分商品失败 采购单Id{purchaseOrderId} 请求参数{JsonConvert.SerializeObject(createOnlinePurchaseOrderRequest)}"); |
|
|
|
} |
|
|
|
|
|
|
|
return new CreateOnlinePurchaseOrderResponse() |
|
|
|
{ |
|
|
|
TotalAmount = totalSuccessAmount, |
|
|
|
ProductAmount = purchaseAmount, |
|
|
|
FreightAmount = postFee, |
|
|
|
PurchaseOrderId = purchaseOrderId, |
|
|
|
FailProductMessageList = failedOfferJArray == null ? null : failedOfferJArray.Select(failedOfferJToken => failedOfferJToken.ToString()).ToList() |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|