From d15c7b633d46c36e6501da7617627fb07318622e Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 9 May 2023 01:14:14 +0800
Subject: [PATCH] =?UTF-8?q?B=E7=AB=AF=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Extensions/EncryptionExtension.cs | 82 +++++++++++++++++++
.../Controllers/OrderController.cs | 22 ++++-
.../Controllers/PurchaseOrderController.cs | 2 +
.../Controllers/VenderController.cs | 4 +-
BBWYB.Server.Business/Order/OrderBusiness.cs | 29 ++++++-
.../Dto/Request/Order/CancelOrderRequest.cs | 9 ++
.../Supplier/QuanTan_Supplier_OrderClient.cs | 5 ++
.../QuanTan_Supplier_CancelOrderRequest.cs | 11 +++
.../Client/Base/OP_PlatformClient.cs | 5 ++
.../Client/Impl/OP_QuanTanClient.cs | 7 ++
.../Request/Order/OP_CancelOrderRequest.cs | 10 +++
11 files changed, 180 insertions(+), 6 deletions(-)
create mode 100644 BBWYB.Common/Extensions/EncryptionExtension.cs
create mode 100644 BBWYB.Server.Model/Dto/Request/Order/CancelOrderRequest.cs
create mode 100644 QuanTan.SDK/Models/Supplier/Request/Order/QuanTan_Supplier_CancelOrderRequest.cs
create mode 100644 SDKAdapter/OperationPlatform/Models/Request/Order/OP_CancelOrderRequest.cs
diff --git a/BBWYB.Common/Extensions/EncryptionExtension.cs b/BBWYB.Common/Extensions/EncryptionExtension.cs
new file mode 100644
index 0000000..5a5b9c0
--- /dev/null
+++ b/BBWYB.Common/Extensions/EncryptionExtension.cs
@@ -0,0 +1,82 @@
+using System.Security.Cryptography;
+using System.Text;
+
+namespace BBWYB.Common.Extensions
+{
+ public static class EncryptionExtension
+ {
+
+ public static string Md5Encrypt(this string originStr)
+ {
+ using (var md5 = MD5.Create())
+ {
+ return string.Join(string.Empty, md5.ComputeHash(Encoding.UTF8.GetBytes(originStr)).Select(x => x.ToString("x2")));
+ }
+ }
+
+ //AES加密 传入,要加密的串和, 解密key
+ public static string AESEncrypt(this string input)
+ {
+ var key = "dataplatform2019";
+ var ivStr = "1012132405963708";
+
+ var encryptKey = Encoding.UTF8.GetBytes(key);
+ var iv = Encoding.UTF8.GetBytes(ivStr); //偏移量,最小为16
+ using (var aesAlg = Aes.Create())
+ {
+ using (var encryptor = aesAlg.CreateEncryptor(encryptKey, iv))
+ {
+ using (var msEncrypt = new MemoryStream())
+ {
+ using (var csEncrypt = new CryptoStream(msEncrypt, encryptor,
+ CryptoStreamMode.Write))
+
+ using (var swEncrypt = new StreamWriter(csEncrypt))
+ {
+ swEncrypt.Write(input);
+ }
+ var decryptedContent = msEncrypt.ToArray();
+
+ return Convert.ToBase64String(decryptedContent);
+ }
+ }
+ }
+ }
+
+ public static string AESDecrypt(this string cipherText)
+ {
+ var fullCipher = Convert.FromBase64String(cipherText);
+
+ var ivStr = "1012132405963708";
+ var key = "dataplatform2019";
+
+ var iv = Encoding.UTF8.GetBytes(ivStr);
+ var decryptKey = Encoding.UTF8.GetBytes(key);
+
+ using (var aesAlg = Aes.Create())
+ {
+ using (var decryptor = aesAlg.CreateDecryptor(decryptKey, iv))
+ {
+ string result;
+ using (var msDecrypt = new MemoryStream(fullCipher))
+ {
+ using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
+ {
+ using (var srDecrypt = new StreamReader(csDecrypt))
+ {
+ result = srDecrypt.ReadToEnd();
+ }
+ }
+ }
+
+ return result;
+ }
+ }
+ }
+
+ public static string Base64Encrypt(this string originStr)
+ {
+ return Convert.ToBase64String(Encoding.UTF8.GetBytes(originStr));
+ }
+ }
+}
diff --git a/BBWYB.Server.API/Controllers/OrderController.cs b/BBWYB.Server.API/Controllers/OrderController.cs
index 3cde242..f27f6d1 100644
--- a/BBWYB.Server.API/Controllers/OrderController.cs
+++ b/BBWYB.Server.API/Controllers/OrderController.cs
@@ -1,10 +1,13 @@
using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
+using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Primitives;
namespace BBWYB.Server.API.Controllers
{
-
+ [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class OrderController : BaseApiController
{
private OrderBusiness orderBusiness;
@@ -29,9 +32,22 @@ namespace BBWYB.Server.API.Controllers
///
///
[HttpPost]
- public void OutStock([FromBody]OutStockRequest request)
- {
+ public void OutStock([FromBody] OutStockRequest request)
+ {
orderBusiness.OutStock(request);
}
+
+ ///
+ /// 取消订单
+ ///
+ ///
+ [HttpPost]
+ public void CancelOrder([FromBody] CancelOrderRequest request)
+ {
+ if (!httpContextAccessor.HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues token))
+ throw new Exception("未获取到token");
+
+ orderBusiness.CancelOrder(request, token.ToString());
+ }
}
}
diff --git a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs
index e4b4f06..98e3bfe 100644
--- a/BBWYB.Server.API/Controllers/PurchaseOrderController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseOrderController.cs
@@ -1,10 +1,12 @@
using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace BBWYB.Server.API.Controllers
{
+ [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class PurchaseOrderController : BaseApiController
{
private PurchaseOrderBusiness purchaseOrderBusiness;
diff --git a/BBWYB.Server.API/Controllers/VenderController.cs b/BBWYB.Server.API/Controllers/VenderController.cs
index cba0fc7..6b101ca 100644
--- a/BBWYB.Server.API/Controllers/VenderController.cs
+++ b/BBWYB.Server.API/Controllers/VenderController.cs
@@ -1,10 +1,12 @@
using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
+using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace BBWYB.Server.API.Controllers
{
-
+ [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class VenderController : BaseApiController
{
private VenderBusiness venderBusiness;
diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs
index 5f379fd..91b1805 100644
--- a/BBWYB.Server.Business/Order/OrderBusiness.cs
+++ b/BBWYB.Server.Business/Order/OrderBusiness.cs
@@ -1,4 +1,5 @@
using BBWYB.Common.Extensions;
+using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model;
@@ -18,10 +19,11 @@ namespace BBWYB.Server.Business
public class OrderBusiness : BaseBusiness, IDenpendency
{
private OP_PlatformClientFactory opPlatformClientFactory;
-
- public OrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory) : base(fsql, nLogManager, idGenerator)
+ private RestApiService restApiService;
+ public OrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory, RestApiService restApiService) : base(fsql, nLogManager, idGenerator)
{
this.opPlatformClientFactory = opPlatformClientFactory;
+ this.restApiService = restApiService;
}
private ISelect GetOrderListQueryConditions(QueryOrderRequest request)
@@ -207,5 +209,28 @@ namespace BBWYB.Server.Business
// .Set(o => o.ExpressName, request.ExpressName)
// .ExecuteAffrows();
}
+
+ public void CancelOrder(CancelOrderRequest request, string mdsToken)
+ {
+ opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform).CancelOrder(new OP_CancelOrderRequest()
+ {
+ AppKey = request.AppKey,
+ AppSecret = request.AppSecret,
+ AppToken = request.AppToken,
+ OrderId = request.OrderId,
+ Platform = (AdapterEnums.PlatformType)request.Platform,
+ Remark = request.Remark
+ });
+
+ fsql.Update(request.OrderId).Set(o => o.OrderState, Enums.OrderState.已取消).ExecuteAffrows();
+
+ var sql = $"update purchaseorderv2 set OrderState=7 where Id='{request.OrderId}'";
+ //取消C端采购单
+ restApiService.SendRequest("https://bbwy.qiyue666.com",
+ "/Api/Sql/ExecuteNonQuery",
+ new { sql = sql.AESEncrypt() },
+ new Dictionary() { { "Authorization", $"{mdsToken}" } },
+ HttpMethod.Post);
+ }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/Order/CancelOrderRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/CancelOrderRequest.cs
new file mode 100644
index 0000000..56c6b0b
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/Order/CancelOrderRequest.cs
@@ -0,0 +1,9 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class CancelOrderRequest: PlatformRequest
+ {
+ public string OrderId { get; set; }
+
+ public string Remark { get; set; }
+ }
+}
diff --git a/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_OrderClient.cs b/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_OrderClient.cs
index 59bde3a..96baf96 100644
--- a/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_OrderClient.cs
+++ b/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_OrderClient.cs
@@ -19,5 +19,10 @@ namespace QuanTan.SDK.Client.Supplier
{
return SendRequest