From 731198b78a35c8a323d781d76c1148ba19e913c7 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Sun, 14 May 2023 17:03:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=87=87=E8=B4=AD=E5=8D=95?= =?UTF-8?q?=E7=AD=BE=E6=94=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/PurchaseOrderController.cs | 13 ++- .../PurchaseOrder/PurchaseOrderBusiness.cs | 37 ++++++-- .../Callback/BBWYBDelivertCallBackRequest.cs | 16 ++++ BBWY.Test/Program.cs | 91 +++++++++++++++---- 4 files changed, 129 insertions(+), 28 deletions(-) create mode 100644 BBWY.Server.Model/Dto/Request/PurchaseOrder/Callback/BBWYBDelivertCallBackRequest.cs diff --git a/BBWY.Server.API/Controllers/PurchaseOrderController.cs b/BBWY.Server.API/Controllers/PurchaseOrderController.cs index 1684f932..caf9b7c4 100644 --- a/BBWY.Server.API/Controllers/PurchaseOrderController.cs +++ b/BBWY.Server.API/Controllers/PurchaseOrderController.cs @@ -105,9 +105,20 @@ namespace BBWY.Server.API.Controllers /// [HttpPost] [AllowAnonymous] - public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request) + public void QuanTanEditPriceCallback([FromBody] QuanTanEditPriceNotifyRequest request) { purchaseOrderBusiness.QuanTanEditPriceCallback(request); } + + /// + /// 签收采购单 + /// + /// + [HttpPost] + [AllowAnonymous] + public void SignPurchaseOrder([FromBody] BBWYBSignCallBackRequest request) + { + purchaseOrderBusiness.SignPurchaseOrder(request); + } } } diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 31092f97..c86f3325 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -369,7 +369,7 @@ namespace BBWY.Server.Business #region CallBack - #region 1688CallBack + #region 1688 CallBack public void CallbackFrom1688(string jsonStr) { nLogManager.Default().Info(jsonStr); @@ -415,7 +415,7 @@ namespace BBWY.Server.Business } #endregion - #region 拳探回调 + #region QuanTan Callback public void QuanTanSendGoodsCallback(QuanTanSendGoodsNotifyRequest request) { Task.Factory.StartNew(() => DeliveryCallback(request.OrderId, new WayBillNoResponse() @@ -425,12 +425,12 @@ namespace BBWY.Server.Business WayBillNo = request.WayBillNo, }, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); - //Task.Factory.StartNew(() => DeliveryCallbackForPurchaseOrder(request.OrderId, new WayBillNoResponse() - //{ - // LogisticsCompanyId = request.ExpressId, - // LogisticsCompanyName = request.ExpressName, - // WayBillNo = request.WayBillNo, - //}, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); + Task.Factory.StartNew(() => DeliveryCallbackForPurchaseOrder(request.OrderId, new WayBillNoResponse() + { + LogisticsCompanyId = request.ExpressId, + LogisticsCompanyName = request.ExpressName, + WayBillNo = request.WayBillNo, + }, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler); } public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request) @@ -442,6 +442,19 @@ namespace BBWY.Server.Business } #endregion + #region bbwyb Callback + public void SignPurchaseOrder(BBWYBSignCallBackRequest request) + { + var pv2 = fsql.Select(request.OrderId).ToOne(); + if (pv2.OrderState == Enums.PurchaseOrderState.待收货) + { + fsql.Update(request.OrderId).Set(p => p.OrderState, Enums.PurchaseOrderState.待质检) + .Set(p => p.SignTime, DateTime.Now) + .ExecuteAffrows(); + } + } + #endregion + /// /// 采购平台发货回调(一件代发) /// @@ -572,6 +585,14 @@ namespace BBWY.Server.Business if (purchaseOrderV2 == null) throw new Exception("未查询到采购单信息"); + fsql.Update(purchaseOrderId).SetIf(purchaseOrderV2.OrderState == Enums.PurchaseOrderState.待发货 || + purchaseOrderV2.OrderState == Enums.PurchaseOrderState.待付款, + p => p.OrderState, Enums.PurchaseOrderState.待收货) + .Set(p => p.ExpressName, wayBillNoResponse.LogisticsCompanyName) + .Set(p => p.WaybillNo, wayBillNoResponse.WayBillNo) + .ExecuteAffrows(); + + } catch (Exception ex) { diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/Callback/BBWYBDelivertCallBackRequest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/Callback/BBWYBDelivertCallBackRequest.cs new file mode 100644 index 00000000..41008cd8 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/Callback/BBWYBDelivertCallBackRequest.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace BBWY.Server.Model.Dto +{ + public class BBWYBDeliveryCallBackRequest + { + public string OrderId { get; set; } + } + + public class BBWYBSignCallBackRequest : BBWYBDeliveryCallBackRequest + { + + } +} diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index f111c6f1..ec05aa1d 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -1,7 +1,11 @@ -using Jd.Api; +using com.alibaba.openapi.client; +using com.alibaba.openapi.client.policy; +using Jd.Api; using Jd.Api.Request; +using Microsoft.Extensions.DependencyInjection; using System; using System.Linq; +using System.Net.Http; using System.Security.Cryptography; using System.Text; @@ -22,6 +26,14 @@ namespace BBWY.Test } } + private static SyncAPIClient GetSyncAPIClient(string appKey, string appSecret) + { + var sercvice = new ServiceCollection(); + sercvice.AddHttpClient(); + var servicePriovder = sercvice.BuildServiceProvider(); + return new SyncAPIClient(appKey, appSecret, new Common.Http.RestApiService(servicePriovder.GetRequiredService())); + } + static void Main(string[] args) { @@ -41,29 +53,70 @@ namespace BBWY.Test //var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品 var token = "50a4c0f5c55848b5a8a715709e8d6fe0jntb"; //卿卿玩具专营店 - //var dt1 = DateTime.Now; - //List list = new List(); - //for (var i = 1; i <= 5000000; i++) - //{ - // var str = tomMd5($"Mozilla/5.0 (Linux; Android 12; 21121210C Build/SKQ1.211006.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/13.8 SP-engine/2.46.0 baiduboxapp/13.8.1.10 (Baidu; P1 12) NABar/1.0 Edg/102.0.5005.63_{i}_192.158.241.{i}_28726526517321"); - // Console.WriteLine($"生成第{i}位指纹,长度{str.Length},{str}"); - // list.Add(str); - //} - //var dt2 = DateTime.Now; - //Console.WriteLine($"总数量{list.Count},总耗时{(dt2 - dt1).TotalSeconds}秒"); + var request = new + { + AppKey = "3944754", + AppSecret = "NahdPJS5uzM", + AppToken = "a9a67b4a-1117-4ae6-8422-8188eedd3480", + OrderId = "1885695962273561469" + }; + { + var client = GetSyncAPIClient(request.AppKey, request.AppSecret); + RequestPolicy reqPolicy = new RequestPolicy(); + reqPolicy.HttpMethod = "POST"; + reqPolicy.NeedAuthorization = false; + reqPolicy.RequestSendTimestamp = false; + reqPolicy.UseHttps = false; + reqPolicy.UseSignture = true; + reqPolicy.AccessPrivateApi = false; + Request _request = new Request(); + APIId apiId = new APIId(); + apiId.Name = "alibaba.trade.getLogisticsInfos.buyerView"; + apiId.NamespaceValue = "com.alibaba.logistics"; + apiId.Version = 1; + _request.ApiId = apiId; - var jdClient = GetJdClient(appkey, appSecret); - var req = new AscFreightViewRequest(); + var param = new { orderId = request.OrderId, webSite = "1688", fields = "logisticsCompanyId,logisticsCompanyName,logisticsBillNo" }; + _request.RequestEntity = param; + if (!string.IsNullOrEmpty(request.AppToken)) + _request.AccessToken = request.AppToken; + var result = client.NewRequest(_request, reqPolicy); + } + + { + var client = GetSyncAPIClient(request.AppKey, request.AppSecret); + RequestPolicy reqPolicy = new RequestPolicy(); + reqPolicy.HttpMethod = "POST"; + reqPolicy.NeedAuthorization = false; + reqPolicy.RequestSendTimestamp = false; + reqPolicy.UseHttps = false; + reqPolicy.UseSignture = true; + reqPolicy.AccessPrivateApi = false; + + Request _request = new Request(); + APIId apiId = new APIId + { + Name = "alibaba.trade.get.buyerView", + NamespaceValue = "com.alibaba.trade", + Version = 1 + }; + _request.ApiId = apiId; + + var param = new + { + webSite = "1688", + orderId = request.OrderId, + includeFields = "baseInfo,productItems" + }; + _request.RequestEntity = param; + if (!string.IsNullOrEmpty(request.AppToken)) + _request.AccessToken = request.AppToken; + var result = client.NewRequest(_request, reqPolicy); + } - req.buId = "11926867"; - req.operatePin = "开发测试"; - req.operateNick = "开发测试"; - req.serviceId = 1701316861; - req.orderId = 264691201058; - var res = jdClient.Execute(req,token, DateTime.Now.ToLocalTime()); Console.ReadKey(); }