Browse Source

同步所有店铺订单

qianyi
shanji 3 years ago
parent
commit
cee8f9a0d0
  1. 11
      BBWY.Server.API/Controllers/OrderController.cs
  2. 25
      BBWY.Server.Business/Order/OrderBusiness.cs
  3. 5
      BBWY.Server.Business/Vender/VenderBusiness.cs

11
BBWY.Server.API/Controllers/OrderController.cs

@ -142,6 +142,7 @@ namespace BBWY.Server.API.Controllers
orderBusiness.SyncOrderByDate(syncOrderByDateRequest);
}
/*
/// <summary>
/// 订单同步
/// </summary>
@ -151,6 +152,16 @@ namespace BBWY.Server.API.Controllers
{
Task.Factory.StartNew(() => orderBusiness.SyncOrder(shopId, string.Empty), System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
}
*/
/// <summary>
/// 同步所有店铺订单
/// </summary>
[HttpPost]
public void SyncAllShopOrder()
{
orderBusiness.SyncAllShopOrder();
}
/// <summary>
/// 订单同步

25
BBWY.Server.Business/Order/OrderBusiness.cs

@ -29,6 +29,7 @@ namespace BBWY.Server.Business
private IIdGenerator idGenerator;
private TaskSchedulerManager taskSchedulerManager;
private MDSBusiness mdsBusiness;
private VenderBusiness venderBusiness;
private Lazy<FreeSqlMultiDBManager> freeSqlMultiDBManagerLazy;
private FreeSqlMultiDBManager freeSqlMultiDBManager => freeSqlMultiDBManagerLazy.Value;
@ -39,6 +40,7 @@ namespace BBWY.Server.Business
IOptions<GlobalConfig> options,
TaskSchedulerManager taskSchedulerManager,
MDSBusiness mdsBusiness,
VenderBusiness venderBusiness,
IServiceProvider serviceProvider) : base(restApiService, options)
{
this.logger = logger;
@ -50,6 +52,7 @@ namespace BBWY.Server.Business
{ Enums.Platform., SyncJDOrder }
};
this.mdsBusiness = mdsBusiness;
this.venderBusiness = venderBusiness;
freeSqlMultiDBManagerLazy = new Lazy<FreeSqlMultiDBManager>(() => serviceProvider.GetService<FreeSqlMultiDBManager>());
}
@ -980,11 +983,17 @@ namespace BBWY.Server.Business
public void SyncOrder(long shopId, string orderId, DateTime? startTime = null, DateTime? endTime = null)
{
var shop = mdsBusiness.GetShopInfoByShopId(shopId);
SyncOrder(shop, orderId, startTime, endTime);
}
private void SyncOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false)
{
try
{
logger.Info($"订单同步 {shop.ShopName} isAuto {isAuto}");
if (!syncOrderMethodDic.ContainsKey(shop.PlatformId))
throw new Exception("不支持的平台");
var shopId = long.Parse(shop.ShopId);
var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId);
var orderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetOrderList", new SearchPlatformOrderRequest()
{
@ -997,7 +1006,7 @@ namespace BBWY.Server.Business
PageSize = 100,
Platform = shop.PlatformId,
JDColType = string.IsNullOrEmpty(shop.ShopType) ? "0" : shop.ShopType,
SaveResponseLog = true,
//SaveResponseLog = true,
OrderId = orderId
}, null, HttpMethod.Post);
if (orderListApiResult.StatusCode != System.Net.HttpStatusCode.OK)
@ -1509,5 +1518,17 @@ namespace BBWY.Server.Business
}
});
}
/// <summary>
/// 同步所有店铺的订单
/// </summary>
public void SyncAllShopOrder()
{
var shopList = venderBusiness.GetShopList();
foreach (var shop in shopList)
{
Task.Factory.StartNew(() => SyncOrder(shop, string.Empty, isAuto: true), System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
}
}
}
}

5
BBWY.Server.Business/Vender/VenderBusiness.cs

@ -219,5 +219,10 @@ namespace BBWY.Server.Business
}
return departmentList;
}
public IList<ShopResponse> GetShopList()
{
return freeSqlMultiDBManager.MDSfsql.Select<Shops>().Where(s => !string.IsNullOrEmpty(s.ShopId)).ToList<ShopResponse>();
}
}
}

Loading…
Cancel
Save