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; }
+ }
+}