From 99179894f31a8468da55b007dd08b0d8b927e109 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 11 May 2023 02:03:15 +0800 Subject: [PATCH] =?UTF-8?q?=20C=E7=AB=AF=E6=94=B9=E4=BB=B7=E9=80=9A?= =?UTF-8?q?=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseOrderController.cs | 13 +++- .../PlatformSDK/QuanTanBusiness.cs | 21 +++--- .../PurchaseOrder/PurchaseOrderBusiness.cs | 69 ++++++++++++++++++- .../OnlinePurchaseOrderSimpleResponse.cs | 7 +- .../Order/QuanTanEditPriceNotifyRequest.cs | 7 ++ 5 files changed, 103 insertions(+), 14 deletions(-) create mode 100644 QuanTan.SDK/Model/Request/Order/QuanTanEditPriceNotifyRequest.cs diff --git a/BBWY.Server.API/Controllers/PurchaseOrderController.cs b/BBWY.Server.API/Controllers/PurchaseOrderController.cs index d64e47fc..1684f932 100644 --- a/BBWY.Server.API/Controllers/PurchaseOrderController.cs +++ b/BBWY.Server.API/Controllers/PurchaseOrderController.cs @@ -96,7 +96,18 @@ namespace BBWY.Server.API.Controllers [AllowAnonymous] public void QuanTanSendGoodsCallback([FromBody] QuanTanSendGoodsNotifyRequest request) { - purchaseOrderBusiness.QuanTan_SendGoodsCallback(request); + purchaseOrderBusiness.QuanTanSendGoodsCallback(request); + } + + /// + /// 拳探改价回调 + /// + /// + [HttpPost] + [AllowAnonymous] + public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request) + { + purchaseOrderBusiness.QuanTanEditPriceCallback(request); } } } diff --git a/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs b/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs index 091e6a23..cc27024b 100644 --- a/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs @@ -29,7 +29,7 @@ namespace BBWY.Server.Business orderId = payPurchaseOrderRequest.OrderId, userAccount = data.AccountName }, payPurchaseOrderRequest.PurchaseAccount.AppKey, payPurchaseOrderRequest.PurchaseAccount.AppSecret); - if (qtResponse.Status == 200) return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState= PurchaseOrderState.待发货 }; + if (qtResponse.Status == 200) return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState = PurchaseOrderState.待发货 }; if (qtResponse.Message != null && qtResponse.Message.Contains("已支付")) { @@ -40,7 +40,7 @@ namespace BBWY.Server.Business }, payPurchaseOrderRequest.PurchaseAccount.AppKey, payPurchaseOrderRequest.PurchaseAccount.AppSecret); if (res.Status == 200) { - PurchaseOrderState purchaseOrder= PurchaseOrderState.待发货; + PurchaseOrderState purchaseOrder = PurchaseOrderState.待发货; switch (res.Data.Status) { case -1: @@ -53,12 +53,12 @@ namespace BBWY.Server.Business purchaseOrder = PurchaseOrderState.待收货; break; case 2: - + case 3: purchaseOrder = PurchaseOrderState.已完成; break; } - return new PayPurchaseOrderResponse { Success = true , PurchaseOrderState= purchaseOrder }; + return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState = purchaseOrder }; } @@ -86,19 +86,19 @@ namespace BBWY.Server.Business }, request.AppKey, request.AppSecret); if (qtResponse.Status == 200) return new CancelPurchaseOrderResponse { Success = true }; - if (qtResponse.Message != null&&qtResponse.Message.Contains("已删除")) + if (qtResponse.Message != null && qtResponse.Message.Contains("已删除")) { return new CancelPurchaseOrderResponse { Success = true }; } return new CancelPurchaseOrderResponse - { - Success = false, - Msg = qtResponse.Message - }; + { + Success = false, + Msg = qtResponse.Message + }; //将数据库设置取消 - + } @@ -201,6 +201,7 @@ namespace BBWY.Server.Business ItemList = qtResponse.Data.OrderProduct.Select(o => new OnlinePurchaseOrderSkuSimpleResponse() { ProductAmount = o.ProductPrice, + FreightAmount = o.PostagePrice, Price = o.Price, ProductId = o.ProductId, SkuId = o.ProductSku, diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index c2ba10c9..d9241c0d 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -411,7 +411,7 @@ namespace BBWY.Server.Business #endregion #region 拳探回调 - public void QuanTan_SendGoodsCallback(QuanTanSendGoodsNotifyRequest request) + public void QuanTanSendGoodsCallback(QuanTanSendGoodsNotifyRequest request) { Task.Factory.StartNew(() => DeliveryCallback(request.OrderId, new WayBillNoResponse() { @@ -427,6 +427,14 @@ namespace BBWY.Server.Business // WayBillNo = request.WayBillNo, //}, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); } + + public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request) + { + + //Task.Factory.StartNew(() => OrderPriceModificationCallback(request.OrderId, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + + Task.Factory.StartNew(() => OrderPriceNotifitionForPurchaseOrder(request.OrderId, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + } #endregion /// @@ -567,7 +575,7 @@ namespace BBWY.Server.Business } /// - /// 采购平台改价回调 + /// 采购平台改价回调(一件代发) /// /// /// @@ -706,6 +714,63 @@ namespace BBWY.Server.Business nLogManager.Default().Error(ex, $"OrderPriceModificationCallback 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]"); } } + + /// + /// 采购平台改价回调(采购单) + /// + /// + /// + private void OrderPriceNotifitionForPurchaseOrder(string purchaseOrderId, Enums.Platform callbackPlatform) + { + string currentProgress = string.Empty; + + try + { + #region 查询数据库采购单 + var purchaseOrder = fsql.Select(purchaseOrderId).ToOne(); + if (purchaseOrder == null) + throw new Exception($"未查询到采购单"); + #endregion + + #region 查询采购账号 + currentProgress = "查询采购账号"; + var purchaseAccount = fsql.Select().Where(pa => pa.Id == purchaseOrder.PurchaseAccountId).ToOne(); + if (purchaseAccount == null) + throw new Exception($"未查询到采购账号"); + #endregion + + #region 查询接口采购单 + var purchaseOrderSimpleInfo = platformSDKBusinessList.FirstOrDefault(p => p.Platform == callbackPlatform).GetOrderSimpleInfo(new GetOrderInfoRequest() + { + AppKey = purchaseAccount.AppKey, + AppSecret = purchaseAccount.AppSecret, + AppToken = purchaseAccount.AppToken, + OrderId = purchaseOrderId, + Platform = callbackPlatform + }); + #endregion + + fsql.Transaction(() => + { + fsql.Update(purchaseOrderId).Set(po => po.ProductAmount, purchaseOrderSimpleInfo.ProductAmount) + .Set(po => po.PurchaseFreight, purchaseOrderSimpleInfo.FreightAmount) + .Set(po => po.PurchaseAmount, purchaseOrderSimpleInfo.TotalAmount) + .ExecuteAffrows(); + foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList) + { + fsql.Update().Where(pos => pos.PurchaseOrderId == purchaseOrderId && pos.PurchaseSkuIds == purchaseOrderSku.SkuId) + .Set(pos => pos.ProductAmount, purchaseOrderSku.ProductAmount) + .Set(pos => pos.PurchaseFreight, purchaseOrderSku.FreightAmount) + .Set(pos => pos.PurchaseAmount, purchaseOrderSku.ProductAmount + purchaseOrderSku.FreightAmount) + .ExecuteAffrows(); + } + }); + } + catch (Exception ex) + { + nLogManager.Default().Error(ex, $"OrderPriceNotifitionForPurchaseOrder 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]"); + } + } #endregion } } diff --git a/BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OnlinePurchaseOrderSimpleResponse.cs b/BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OnlinePurchaseOrderSimpleResponse.cs index dc1d6899..18174a0f 100644 --- a/BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OnlinePurchaseOrderSimpleResponse.cs +++ b/BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OnlinePurchaseOrderSimpleResponse.cs @@ -46,10 +46,15 @@ namespace BBWY.Server.Model.Dto public string SpecId { get; set; } /// - /// 货款金额 + /// 货款 /// public decimal ProductAmount { get; set; } + /// + /// 运费 + /// + public decimal FreightAmount { get; set; } + /// /// 单价 /// diff --git a/QuanTan.SDK/Model/Request/Order/QuanTanEditPriceNotifyRequest.cs b/QuanTan.SDK/Model/Request/Order/QuanTanEditPriceNotifyRequest.cs new file mode 100644 index 00000000..feaac30e --- /dev/null +++ b/QuanTan.SDK/Model/Request/Order/QuanTanEditPriceNotifyRequest.cs @@ -0,0 +1,7 @@ +namespace QuanTan.SDK.Model +{ + public class QuanTanEditPriceNotifyRequest + { + public string OrderId { get; set; } + } +}