Browse Source

对接1688下单 未完

qianyi
shanji 3 years ago
parent
commit
142f993f1d
  1. 10
      BBWY.Server.API/Controllers/PurchaseOrderController.cs
  2. 2
      BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
  3. 29
      BBWY.Server.Business/PlatformSDK/_1688Business.cs
  4. 12
      BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  5. 10
      BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs
  6. 30
      BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderResponse.cs

10
BBWY.Server.API/Controllers/PurchaseOrderController.cs

@ -52,5 +52,15 @@ namespace BBWY.Server.API.Controllers
{
return purchaseOrderBusiness.PreviewPurchaseOrder(previewOrderReuqest);
}
/// <summary>
/// 创建在线采购单
/// </summary>
/// <param name="createOnlinePurchaseOrderRequest"></param>
[HttpPost]
public void FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest)
{
purchaseOrderBusiness.FastCreateOrder(createOnlinePurchaseOrderRequest);
}
}
}

2
BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs

@ -78,7 +78,7 @@ namespace BBWY.Server.Business
throw new NotImplementedException();
}
public virtual void FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest)
public virtual CreateOnlinePurchaseOrderResponse FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest)
{
throw new NotImplementedException();
}

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

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

12
BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -66,10 +66,18 @@ namespace BBWY.Server.Business
public PreviewOrderResponse PreviewPurchaseOrder(PreviewOrderReuqest previewOrderReuqest)
{
if (previewOrderReuqest.Platform != Model.Enums.Platform.)
{
throw new NotImplementedException();
}
return platformSDKBusinessList.FirstOrDefault(p => p.Platform == previewOrderReuqest.Platform).PreviewOrder(previewOrderReuqest);
}
public void FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest)
{
if (createOnlinePurchaseOrderRequest.Platform != Model.Enums.Platform.)
throw new NotImplementedException();
var createOrderResponse = platformSDKBusinessList.FirstOrDefault(p => p.Platform == createOnlinePurchaseOrderRequest.Platform)
.FastCreateOrder(createOnlinePurchaseOrderRequest);
}
}
}

10
BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs

@ -11,5 +11,15 @@
/// 采购单留言
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 店铺订单Id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
public long ShopId { get; set; }
}
}

30
BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderResponse.cs

@ -0,0 +1,30 @@
using System.Collections.Generic;
namespace BBWY.Server.Model.Dto
{
public class CreateOnlinePurchaseOrderResponse
{
public string PurchaseOrderId { get; set; }
/// <summary>
/// 订单总额
/// </summary>
public decimal TotalAmount { get; set; }
/// <summary>
/// 货款总额
/// </summary>
public decimal ProductAmount { get; set; }
/// <summary>
/// 运费总额
/// </summary>
public decimal FreightAmount { get; set; }
/// <summary>
/// 下单失败的商品信息
/// </summary>
public IList<string> FailProductMessageList { get; set; }
}
}
Loading…
Cancel
Save