shanji 2 years ago
parent
commit
e51710e8c1
  1. 14
      BBWY.Server.API/Controllers/OrderSyncController.cs
  2. 33
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs
  3. 68
      BBWY.Test/Program.cs

14
BBWY.Server.API/Controllers/OrderSyncController.cs

@ -2,6 +2,7 @@
using BBWY.Server.Model.Dto;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace BBWY.Server.API.Controllers
{
@ -34,6 +35,19 @@ namespace BBWY.Server.API.Controllers
orderSyncBusiness.ManualSyncOrder(shopId, orderId, null, null);
}
/// <summary>
/// 订单同步
/// </summary>
/// <param name="shopId"></param>
/// <param name="orderIds"></param>
[HttpPost("{shopId}")]
public void SyncOrders([FromRoute] long shopId, [FromBody] IList<string> orderIds)
{
orderSyncBusiness.ManualSyncOrder(shopId, orderIds, null, null);
}
/// <summary>
/// 根据日期同步
/// </summary>

33
BBWY.Server.Business/Sync/OrderSyncBusiness.cs

@ -16,6 +16,7 @@ using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Yitter.IdGenerator;
@ -63,6 +64,32 @@ namespace BBWY.Server.Business
SyncOrder(shop, orderId, startTime, endTime, isAuto: false, Enums.SortTimeType.StartTime);
}
/// <summary>
/// 手动同步订单
/// </summary>
/// <param name="shopId"></param>
/// <param name="orderIds"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
public void ManualSyncOrder(long shopId, IList<string> orderIds, DateTime? startTime = null, DateTime? endTime = null)
{
var shop = venderBusiness.GetShopByShopId(shopId.ToString());
Task.Factory.StartNew(() =>
{
var i = 1;
foreach (var orderId in orderIds)
{
SyncOrder(shop, orderId, startTime, endTime, isAuto: false, Enums.SortTimeType.StartTime);
Thread.Sleep(500);
i++;
Console.WriteLine();
Console.WriteLine($"Sync Order {orderId}, {i}");
}
Console.WriteLine("job done");
}, System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
}
private void SyncOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false, Enums.SortTimeType? sortTimeType = null)
{
try
@ -74,7 +101,7 @@ namespace BBWY.Server.Business
var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId);
var orderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetOrderList", new SearchPlatformOrderRequest()
{
StartDate = startTime ?? DateTime.Now.AddHours(-3),
StartDate = startTime ?? DateTime.Now.AddHours(shop.ShopName.Contains("腾奇") ? -0.5 : -3),
EndDate = endTime ?? DateTime.Now,
AppKey = shop.AppKey,
AppSecret = shop.AppSecret,
@ -297,6 +324,8 @@ namespace BBWY.Server.Business
foreach (var orderJToken in noGiftOrderList)
{
var orderId = orderJToken.Value<string>("orderId");
if (insertOrderList.Count(o => o.Id == orderId) > 0)
continue;
var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == orderId);
var isNewOrder = dbOrder == null;
SDCalculationCostRequest sDCalculationCostRequest = null; //SD信息埋点
@ -654,6 +683,8 @@ namespace BBWY.Server.Business
}
#endregion
fsql.Transaction(() =>
{
if (insertOrderList.Count() > 0)

68
BBWY.Test/Program.cs

@ -45,42 +45,44 @@ namespace BBWY.Test
//var token = "44c19a1c1fbd4641957e6e8985ed1358jmtl"; //森王玩具
var qtAppId = "BBWY2023022001";
var qtAppSecret = "908e131365d5448ca651ba20ed7ddefe";
var url = "https://qt.qiyue666.com/api/platform/product/spu/208";
var callTime = DateTime.Now.ToString("yyyyMMddHHmmss");
var randomNum = new Random().Next(100000, 999999).ToString();
var p = new object[] { };
//var qtAppId = "BBWY2023022001";
//var qtAppSecret = "908e131365d5448ca651ba20ed7ddefe";
//var url = "https://qt.qiyue666.com/api/platform/product/spu/208";
//var callTime = DateTime.Now.ToString("yyyyMMddHHmmss");
//var randomNum = new Random().Next(100000, 999999).ToString();
//var p = new object[] { };
var jmStr = JsonConvert.SerializeObject(new QuanTanSignParam()
{
appId = qtAppId,
appSecret = qtAppSecret,
callTime = callTime,
_params = JsonConvert.SerializeObject(p),
randomNum = randomNum
});
var md5Str = Md5Encrypt(jmStr);
var qtToken = $"{qtAppId}-{callTime}-{md5Str}-{randomNum}";
//var jmStr = JsonConvert.SerializeObject(new QuanTanSignParam()
//{
// appId = qtAppId,
// appSecret = qtAppSecret,
// callTime = callTime,
// _params = JsonConvert.SerializeObject(p),
// randomNum = randomNum
//});
//var md5Str = Md5Encrypt(jmStr);
//var qtToken = $"{qtAppId}-{callTime}-{md5Str}-{randomNum}";
var qtRequestParam = new QuanTanRequestParam()
{
Params = p,
token = qtToken
};
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(HttpMethod.Post, url))
{
request.Content = new StringContent(JsonConvert.SerializeObject(qtRequestParam), Encoding.UTF8, "application/json");
//var qtRequestParam = new QuanTanRequestParam()
//{
// Params = p,
// token = qtToken
//};
//using (var httpClient = new HttpClient())
//{
// using (var request = new HttpRequestMessage(HttpMethod.Post, url))
// {
// request.Content = new StringContent(JsonConvert.SerializeObject(qtRequestParam), Encoding.UTF8, "application/json");
using (var response = httpClient.SendAsync(request).Result)
{
var result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);
}
}
}
// using (var response = httpClient.SendAsync(request).Result)
// {
// var result = response.Content.ReadAsStringAsync().Result;
// Console.WriteLine(result);
// }
// }
//}
Console.ReadKey();
}

Loading…
Cancel
Save