Browse Source

B端取消订单接口

updatebug
shanji 2 years ago
parent
commit
d15c7b633d
  1. 82
      BBWYB.Common/Extensions/EncryptionExtension.cs
  2. 20
      BBWYB.Server.API/Controllers/OrderController.cs
  3. 2
      BBWYB.Server.API/Controllers/PurchaseOrderController.cs
  4. 4
      BBWYB.Server.API/Controllers/VenderController.cs
  5. 29
      BBWYB.Server.Business/Order/OrderBusiness.cs
  6. 9
      BBWYB.Server.Model/Dto/Request/Order/CancelOrderRequest.cs
  7. 5
      QuanTan.SDK/Client/Supplier/QuanTan_Supplier_OrderClient.cs
  8. 11
      QuanTan.SDK/Models/Supplier/Request/Order/QuanTan_Supplier_CancelOrderRequest.cs
  9. 5
      SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs
  10. 7
      SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs
  11. 10
      SDKAdapter/OperationPlatform/Models/Request/Order/OP_CancelOrderRequest.cs

82
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));
}
}
}

20
BBWYB.Server.API/Controllers/OrderController.cs

@ -1,10 +1,13 @@
using BBWYB.Server.Business; using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
namespace BBWYB.Server.API.Controllers namespace BBWYB.Server.API.Controllers
{ {
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class OrderController : BaseApiController public class OrderController : BaseApiController
{ {
private OrderBusiness orderBusiness; private OrderBusiness orderBusiness;
@ -29,9 +32,22 @@ namespace BBWYB.Server.API.Controllers
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
[HttpPost] [HttpPost]
public void OutStock([FromBody]OutStockRequest request) public void OutStock([FromBody] OutStockRequest request)
{ {
orderBusiness.OutStock(request); orderBusiness.OutStock(request);
} }
/// <summary>
/// 取消订单
/// </summary>
/// <param name="request"></param>
[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());
}
} }
} }

2
BBWYB.Server.API/Controllers/PurchaseOrderController.cs

@ -1,10 +1,12 @@
using BBWYB.Server.Business; using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace BBWYB.Server.API.Controllers namespace BBWYB.Server.API.Controllers
{ {
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class PurchaseOrderController : BaseApiController public class PurchaseOrderController : BaseApiController
{ {
private PurchaseOrderBusiness purchaseOrderBusiness; private PurchaseOrderBusiness purchaseOrderBusiness;

4
BBWYB.Server.API/Controllers/VenderController.cs

@ -1,10 +1,12 @@
using BBWYB.Server.Business; using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace BBWYB.Server.API.Controllers namespace BBWYB.Server.API.Controllers
{ {
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class VenderController : BaseApiController public class VenderController : BaseApiController
{ {
private VenderBusiness venderBusiness; private VenderBusiness venderBusiness;

29
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -1,4 +1,5 @@
using BBWYB.Common.Extensions; using BBWYB.Common.Extensions;
using BBWYB.Common.Http;
using BBWYB.Common.Log; using BBWYB.Common.Log;
using BBWYB.Common.Models; using BBWYB.Common.Models;
using BBWYB.Server.Model; using BBWYB.Server.Model;
@ -18,10 +19,11 @@ namespace BBWYB.Server.Business
public class OrderBusiness : BaseBusiness, IDenpendency public class OrderBusiness : BaseBusiness, IDenpendency
{ {
private OP_PlatformClientFactory opPlatformClientFactory; private OP_PlatformClientFactory opPlatformClientFactory;
private RestApiService restApiService;
public OrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory) : base(fsql, nLogManager, idGenerator) public OrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, OP_PlatformClientFactory opPlatformClientFactory, RestApiService restApiService) : base(fsql, nLogManager, idGenerator)
{ {
this.opPlatformClientFactory = opPlatformClientFactory; this.opPlatformClientFactory = opPlatformClientFactory;
this.restApiService = restApiService;
} }
private ISelect<Order, OrderConsignee, OrderCost> GetOrderListQueryConditions(QueryOrderRequest request) private ISelect<Order, OrderConsignee, OrderCost> GetOrderListQueryConditions(QueryOrderRequest request)
@ -207,5 +209,28 @@ namespace BBWYB.Server.Business
// .Set(o => o.ExpressName, request.ExpressName) // .Set(o => o.ExpressName, request.ExpressName)
// .ExecuteAffrows(); // .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<Order>(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<string, string>() { { "Authorization", $"{mdsToken}" } },
HttpMethod.Post);
}
} }
} }

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

5
QuanTan.SDK/Client/Supplier/QuanTan_Supplier_OrderClient.cs

@ -19,5 +19,10 @@ namespace QuanTan.SDK.Client.Supplier
{ {
return SendRequest<object>("api/platform/supply/order/delivery", request, appId, appSecret); return SendRequest<object>("api/platform/supply/order/delivery", request, appId, appSecret);
} }
public QuanTanResponse<object> CancelOrder(QuanTan_Supplier_CancelOrderRequest request, string appId, string appSecret)
{
return SendRequest<object>("api/platform/supply/order/cancel", request, appId, appSecret);
}
} }
} }

11
QuanTan.SDK/Models/Supplier/Request/Order/QuanTan_Supplier_CancelOrderRequest.cs

@ -0,0 +1,11 @@
namespace QuanTan.SDK.Models.Supplier
{
public class QuanTan_Supplier_CancelOrderRequest
{
public string editAdmin { get; set; }
public string orderId { get; set; }
public string remark { get; set; }
}
}

5
SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs

@ -41,5 +41,10 @@ namespace SDKAdapter.OperationPlatform.Client
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public virtual void CancelOrder(OP_CancelOrderRequest request)
{
throw new NotImplementedException();
}
} }
} }

7
SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs

@ -187,5 +187,12 @@ namespace SDKAdapter.OperationPlatform.Client
ExpressName = p.ExpressName, ExpressName = p.ExpressName,
}).ToList(); }).ToList();
} }
public override void CancelOrder(OP_CancelOrderRequest request)
{
var qtResponse = supplier_OrderClient.CancelOrder(new QuanTan_Supplier_CancelOrderRequest(), request.AppKey, request.AppSecret);
if (qtResponse.Status != 200)
throw new Exception(qtResponse.Message);
}
} }
} }

10
SDKAdapter/OperationPlatform/Models/Request/Order/OP_CancelOrderRequest.cs

@ -0,0 +1,10 @@
namespace SDKAdapter.OperationPlatform.Models
{
public class OP_CancelOrderRequest: BasePlatformRequest
{
public string OrderId { get; set; }
public string Remark { get; set; }
}
}
Loading…
Cancel
Save