Browse Source

新增采购单签收接口

AddValidOverTime
shanji 2 years ago
parent
commit
731198b78a
  1. 13
      BBWY.Server.API/Controllers/PurchaseOrderController.cs
  2. 35
      BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  3. 16
      BBWY.Server.Model/Dto/Request/PurchaseOrder/Callback/BBWYBDelivertCallBackRequest.cs
  4. 91
      BBWY.Test/Program.cs

13
BBWY.Server.API/Controllers/PurchaseOrderController.cs

@ -105,9 +105,20 @@ namespace BBWY.Server.API.Controllers
/// <param name="request"></param>
[HttpPost]
[AllowAnonymous]
public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request)
public void QuanTanEditPriceCallback([FromBody] QuanTanEditPriceNotifyRequest request)
{
purchaseOrderBusiness.QuanTanEditPriceCallback(request);
}
/// <summary>
/// 签收采购单
/// </summary>
/// <param name="request"></param>
[HttpPost]
[AllowAnonymous]
public void SignPurchaseOrder([FromBody] BBWYBSignCallBackRequest request)
{
purchaseOrderBusiness.SignPurchaseOrder(request);
}
}
}

35
BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -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<PurchaseOrderV2>(request.OrderId).ToOne();
if (pv2.OrderState == Enums.PurchaseOrderState.)
{
fsql.Update<PurchaseOrderV2>(request.OrderId).Set(p => p.OrderState, Enums.PurchaseOrderState.)
.Set(p => p.SignTime, DateTime.Now)
.ExecuteAffrows();
}
}
#endregion
/// <summary>
/// 采购平台发货回调(一件代发)
/// </summary>
@ -572,6 +585,14 @@ namespace BBWY.Server.Business
if (purchaseOrderV2 == null)
throw new Exception("未查询到采购单信息");
fsql.Update<PurchaseOrderV2>(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)
{

16
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
{
}
}

91
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<IHttpClientFactory>()));
}
static void Main(string[] args)
{
@ -41,29 +53,70 @@ namespace BBWY.Test
//var token = "4a0ddc095e054c7aa90adcaccb14f83cwzgr"; //可比车品
var token = "50a4c0f5c55848b5a8a715709e8d6fe0jntb"; //卿卿玩具专营店
//var dt1 = DateTime.Now;
//List<string> list = new List<string>();
//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 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 jdClient = GetJdClient(appkey, appSecret);
var req = new AscFreightViewRequest();
{
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();
}

Loading…
Cancel
Save