Browse Source

推广同步

qianyi
shanji 3 years ago
parent
commit
207e49de2f
  1. 13
      BBWY.Server.API/Controllers/PlatformSDKController.cs
  2. 20
      BBWY.Server.Business/PlatformSDK/JDBusiness.cs
  3. 5
      BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs
  4. 87
      BBWY.Server.Business/Sync/JDPopularizeSyncBusiness.cs
  5. 3
      BBWY.Server.Business/TaskSchedulerManager.cs
  6. 13
      BBWY.Server.Model/Dto/Request/Sync/SyncShopPopularizeRequest.cs

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

@ -182,9 +182,20 @@ namespace BBWY.Server.API.Controllers
/// <param name="searchOrderRequest"></param> /// <param name="searchOrderRequest"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public JToken GetNoPayOrder([FromBody]SearchPlatformOrderRequest searchOrderRequest) public JToken GetNoPayOrder([FromBody] SearchPlatformOrderRequest searchOrderRequest)
{ {
return platformSDKBusinessList.FirstOrDefault(p => p.Platform == searchOrderRequest.Platform).GetNoPayOrder(searchOrderRequest); return platformSDKBusinessList.FirstOrDefault(p => p.Platform == searchOrderRequest.Platform).GetNoPayOrder(searchOrderRequest);
} }
/// <summary>
/// 查询京东推广费用
/// </summary>
/// <param name="syncShopPopularizeRequest"></param>
/// <returns></returns>
[HttpPost]
public JArray GetJDShopSopularizeRecordList([FromBody] SyncShopPopularizeRequest syncShopPopularizeRequest)
{
return platformSDKBusinessList.FirstOrDefault(p => p.Platform == syncShopPopularizeRequest.Platform).GetJDShopSopularizeRecordList(syncShopPopularizeRequest);
}
} }
} }

20
BBWY.Server.Business/PlatformSDK/JDBusiness.cs

@ -467,8 +467,26 @@ namespace BBWY.Server.Business
response.Json = JsonConvert.DeserializeObject<JObject>(response.Body); response.Json = JsonConvert.DeserializeObject<JObject>(response.Body);
if (response.Json["jingdong_pop_order_notPayOrderById_responce"] == null) if (response.Json["jingdong_pop_order_notPayOrderById_responce"] == null)
throw new BusinessException($"未查询到未付款订单"); throw new BusinessException($"未查询到未付款订单");
return response.Json; return response.Json;
} }
public override JArray GetJDShopSopularizeRecordList(SyncShopPopularizeRequest syncShopPopularizeRequest)
{
var jdClient = GetJdClient(syncShopPopularizeRequest.AppKey, syncShopPopularizeRequest.AppSecret);
var req = new DspPlatformFinanceOpenapiQuerycostdetailsRequest();
req.beginDate = syncShopPopularizeRequest.StartDate.ToString("yyyy-MM-dd");
req.endDate = syncShopPopularizeRequest.EndDate.ToString("yyyy-MM-dd");
req.pageNo = 1;
req.pageSize = 100;
req.moneyType = 1;
var response = jdClient.Execute(req, syncShopPopularizeRequest.AppToken, DateTime.Now.ToLocalTime());
if (response.IsError)
throw new BusinessException($"获取JD推广费用失败,{(string.IsNullOrEmpty(response.ErrorMsg) ? response.ErrMsg : response.ErrorMsg)}");
if (response.Json == null)
response.Json = JsonConvert.DeserializeObject<JObject>(response.Body);
return (JArray)response.Json["jingdong_dsp_platform_finance_openapi_querycostdetails_responce"]["returnType"]["data"]["page"]["data"];
}
} }
} }

5
BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs

@ -107,5 +107,10 @@ namespace BBWY.Server.Business
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public virtual JArray GetJDShopSopularizeRecordList(SyncShopPopularizeRequest syncShopPopularizeRequest)
{
throw new NotImplementedException();
}
} }
} }

87
BBWY.Server.Business/Sync/JDPopularizeSyncBusiness.cs

@ -0,0 +1,87 @@
using BBWY.Common.Http;
using BBWY.Common.Models;
using BBWY.Server.Model;
using BBWY.Server.Model.Dto;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Yitter.IdGenerator;
namespace BBWY.Server.Business.Sync
{
public class JDPopularizeSyncBusiness : BaseSyncBusiness, IDenpendency
{
public JDPopularizeSyncBusiness(RestApiService restApiService,
IOptions<GlobalConfig> options,
ILogger logger,
IFreeSql fsql,
IIdGenerator idGenerator,
TaskSchedulerManager taskSchedulerManager,
VenderBusiness venderBusiness) : base(restApiService,
options,
logger,
fsql,
idGenerator,
taskSchedulerManager,
venderBusiness)
{
}
private void SyncShopPopularizeRecord(long shopId, JArray jArray)
{
}
private void SyncShopPopularizeRecord(ShopResponse shop, DateTime startDate, DateTime endDate)
{
try
{
var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId);
var httpResult = restApiService.SendRequest(relayAPIHost, "Api/PlatformSDK/GetJDShopSopularizeRecordList", new SyncShopPopularizeRequest()
{
AppKey = shop.AppKey,
AppSecret = shop.AppSecret,
AppToken = shop.AppToken,
EndDate = endDate,
StartDate = startDate,
Platform = shop.PlatformId,
}, null, HttpMethod.Post);
if (httpResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new Exception($"获取JD推广费用失败 {httpResult.Content}");
var presponse = JsonConvert.DeserializeObject<ApiResponse<JArray>>(httpResult.Content);
if (!presponse.Success)
throw new Exception($"获取JD推广费用失败 {presponse.Msg}");
SyncShopPopularizeRecord(long.Parse(shop.ShopId), presponse.Data);
}
catch (Exception ex)
{
var shopData = JsonConvert.SerializeObject(shop);
logger.Error(ex, $"SyncOrder ShopData:{shopData}");
}
}
public void SyncAllShopPopularizeRecord()
{
var shopList = venderBusiness.GetShopList();
foreach (var shop in shopList)
{
Task.Factory.StartNew(() => SyncShopPopularizeRecord(shop,
DateTime.Now.Date.AddDays(-1),
DateTime.Now.Date.AddDays(-1)),
System.Threading.CancellationToken.None,
TaskCreationOptions.LongRunning,
taskSchedulerManager.JDPopularizeTaskScheduler);
}
}
}
}

3
BBWY.Server.Business/TaskSchedulerManager.cs

@ -14,6 +14,8 @@ namespace BBWY.Server.Business
public LimitedConcurrencyLevelTaskScheduler PurchaseOrderCallbackTaskScheduler { get; private set; } public LimitedConcurrencyLevelTaskScheduler PurchaseOrderCallbackTaskScheduler { get; private set; }
public LimitedConcurrencyLevelTaskScheduler JDPopularizeTaskScheduler { get; private set; }
public TaskSchedulerManager() public TaskSchedulerManager()
{ {
SyncOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); SyncOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
@ -21,6 +23,7 @@ namespace BBWY.Server.Business
SyncAfterOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); SyncAfterOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
PurchaseOrderCallbackTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10); PurchaseOrderCallbackTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
ProductSyncTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(5); ProductSyncTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(5);
JDPopularizeTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
} }
} }
} }

13
BBWY.Server.Model/Dto/Request/Sync/SyncShopPopularizeRequest.cs

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Dto
{
public class SyncShopPopularizeRequest:PlatformRequest
{
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
}
Loading…
Cancel
Save