From 142f993f1d88b6052b4a3945d724ffb2b88c479c Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 8 Mar 2022 05:27:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A51688=E4=B8=8B=E5=8D=95=20?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseOrderController.cs | 10 +++++++ .../PlatformSDK/PlatformSDKBusiness.cs | 2 +- .../PlatformSDK/_1688Business.cs | 29 ++++++++++++++++-- .../PurchaseOrder/PurchaseOrderBusiness.cs | 12 ++++++-- .../CreateOnlinePurchaseOrderRequest.cs | 10 +++++++ .../CreateOnlinePurchaseOrderResponse.cs | 30 +++++++++++++++++++ 6 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderResponse.cs diff --git a/BBWY.Server.API/Controllers/PurchaseOrderController.cs b/BBWY.Server.API/Controllers/PurchaseOrderController.cs index 2d96451e..9c5f9f3d 100644 --- a/BBWY.Server.API/Controllers/PurchaseOrderController.cs +++ b/BBWY.Server.API/Controllers/PurchaseOrderController.cs @@ -52,5 +52,15 @@ namespace BBWY.Server.API.Controllers { return purchaseOrderBusiness.PreviewPurchaseOrder(previewOrderReuqest); } + + /// + /// 创建在线采购单 + /// + /// + [HttpPost] + public void FastCreateOrder(CreateOnlinePurchaseOrderRequest createOnlinePurchaseOrderRequest) + { + purchaseOrderBusiness.FastCreateOrder(createOnlinePurchaseOrderRequest); + } } } diff --git a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs index 531e96ef..c883ec10 100644 --- a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs +++ b/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(); } diff --git a/BBWY.Server.Business/PlatformSDK/_1688Business.cs b/BBWY.Server.Business/PlatformSDK/_1688Business.cs index 4bc13f83..3aab9b76 100644 --- a/BBWY.Server.Business/PlatformSDK/_1688Business.cs +++ b/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("success") != true) throw new BusinessException(result.Value("errorMsg")) { Code = 0 }; - var totalSuccessAmount = result["result"].Value("totalSuccessAmount") / 100M; //采购总金额 + var totalSuccessAmount = result["result"].Value("totalSuccessAmount") / 100M; //采购单总金额,单位分 + var purchaseOrderId = result["result"].Value("orderId"); //采购单号 + var postFee = result["result"].Value("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() + }; } } diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 90f458a9..b74a6378 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/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); + + + } } } diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs index 8d8730af..5f7fd53e 100644 --- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderRequest.cs @@ -11,5 +11,15 @@ /// 采购单留言 /// public string Remark { get; set; } + + /// + /// 店铺订单Id + /// + public string OrderId { get; set; } + + /// + /// 店铺Id + /// + public long ShopId { get; set; } } } diff --git a/BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderResponse.cs b/BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/CreateOnlinePurchaseOrderResponse.cs new file mode 100644 index 00000000..3517a7a7 --- /dev/null +++ b/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; } + + /// + /// 订单总额 + /// + public decimal TotalAmount { get; set; } + + /// + /// 货款总额 + /// + public decimal ProductAmount { get; set; } + + /// + /// 运费总额 + /// + public decimal FreightAmount { get; set; } + + /// + /// 下单失败的商品信息 + /// + public IList FailProductMessageList { get; set; } + } +}