|
|
@ -5,6 +5,9 @@ using BBWYB.Server.Model; |
|
|
|
using BBWYB.Server.Model.Db; |
|
|
|
using BBWYB.Server.Model.Dto; |
|
|
|
using FreeSql; |
|
|
|
using SDKAdapter; |
|
|
|
using SDKAdapter.OperationPlatform.Client; |
|
|
|
using SDKAdapter.OperationPlatform.Models; |
|
|
|
using System.Net.Http.Headers; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
|
|
|
@ -17,13 +20,15 @@ namespace BBWYB.Server.Business |
|
|
|
private PurchaseOrderBusiness purchaseOrderBusiness; |
|
|
|
private FreeSqlMultiDBManager freeSqlMultiDBManager; |
|
|
|
private VenderBusiness venderBusiness; |
|
|
|
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness, FreeSqlMultiDBManager freeSqlMultiDBManager, VenderBusiness venderBusiness) : base(fsql, nLogManager, idGenerator) |
|
|
|
private OP_PlatformClientFactory opPlatformClientFactory; |
|
|
|
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness, FreeSqlMultiDBManager freeSqlMultiDBManager, VenderBusiness venderBusiness, OP_PlatformClientFactory opPlatformClientFactory) : base(fsql, nLogManager, idGenerator) |
|
|
|
{ |
|
|
|
this.kuaiDi100Manager = kuaiDi100Manager; |
|
|
|
this.purchaseSchemeBusiness = purchaseSchemeBusiness; |
|
|
|
this.purchaseOrderBusiness = purchaseOrderBusiness; |
|
|
|
this.freeSqlMultiDBManager = freeSqlMultiDBManager; |
|
|
|
this.venderBusiness = venderBusiness; |
|
|
|
this.opPlatformClientFactory = opPlatformClientFactory; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -410,7 +415,7 @@ namespace BBWYB.Server.Business |
|
|
|
List<HistoryPurchaseScheme> insertHistoryPSList = new List<HistoryPurchaseScheme>(); |
|
|
|
List<HistoryPurchaseSchemeProduct> insertHistoryPSPList = new List<HistoryPurchaseSchemeProduct>(); |
|
|
|
List<HistoryPurchaseSchemeProductSku> insertHistoryPSSList = new List<HistoryPurchaseSchemeProductSku>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var ps in psList) |
|
|
|
{ |
|
|
@ -459,5 +464,113 @@ namespace BBWYB.Server.Business |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void BatchCompleteOrder() |
|
|
|
{ |
|
|
|
var time = DateTime.Parse("2023-09-01"); |
|
|
|
//var orderStateList = new List<Enums.OrderState?>() { Enums.OrderState.待付款, Enums.OrderState.已取消, Enums.OrderState.已完成 };
|
|
|
|
//var orderList = fsql.Select<Order>().Where(o => o.StartTime < time && !orderStateList.Contains(o.OrderState)).ToList();
|
|
|
|
|
|
|
|
var orderList = fsql.Select<Order>().Where(o => o.StartTime < time && o.OrderState == Enums.OrderState.待付款).ToList(); |
|
|
|
var shops = venderBusiness.GetShopList(platform: Enums.Platform.拳探); |
|
|
|
var count = orderList.Count(); |
|
|
|
var i = 1; |
|
|
|
|
|
|
|
Queue<IUpdate<Order>> updateOrderQueue = new Queue<IUpdate<Order>>(); |
|
|
|
List<IUpdate<Order>> updateOrderList = new List<IUpdate<Order>>(); |
|
|
|
foreach (var order in orderList) |
|
|
|
{ |
|
|
|
Console.WriteLine($"{i}/{count},{order.Id}"); |
|
|
|
try |
|
|
|
{ |
|
|
|
var shop = shops.FirstOrDefault(s => s.ShopId == order.ShopId.ToString()); |
|
|
|
if (shop == null) |
|
|
|
{ |
|
|
|
i++; |
|
|
|
continue; |
|
|
|
} |
|
|
|
var qtOrderList = opPlatformClientFactory.GetClient(AdapterEnums.PlatformType.拳探).GetOrderList(new OP_QueryOrderRequest() |
|
|
|
{ |
|
|
|
AppKey = shop.AppKey, |
|
|
|
AppSecret = shop.AppSecret, |
|
|
|
AppToken = shop.AppToken, |
|
|
|
OrderId = order.Id, |
|
|
|
PageIndex = 1, |
|
|
|
PageSize = 100, |
|
|
|
Platform = AdapterEnums.PlatformType.拳探, |
|
|
|
SortTimeField = AdapterEnums.SortTimeField.Modify, |
|
|
|
SortType = AdapterEnums.SortType.Desc, |
|
|
|
StartDate = null, |
|
|
|
EndDate = null |
|
|
|
}); |
|
|
|
if (qtOrderList.Count == 0) |
|
|
|
{ |
|
|
|
var update = fsql.Update<Order>(order.Id).Set(o => o.OrderState, Enums.OrderState.已取消); |
|
|
|
updateOrderQueue.Enqueue(update); |
|
|
|
|
|
|
|
i++; |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
var qtOrder = qtOrderList.Items[0]; |
|
|
|
if (qtOrder.OrderState != "-1" && qtOrder.IsPay) |
|
|
|
{ |
|
|
|
var update = fsql.Update<Order>(order.Id).Set(o => o.OrderState, Enums.OrderState.已完成); |
|
|
|
updateOrderQueue.Enqueue(update); |
|
|
|
} |
|
|
|
|
|
|
|
if ((qtOrder.OrderState == "-1" || !qtOrder.IsPay) && order.OrderState != Enums.OrderState.已取消) |
|
|
|
{ |
|
|
|
var update = fsql.Update<Order>(order.Id).Set(o => o.OrderState, Enums.OrderState.已取消); |
|
|
|
updateOrderQueue.Enqueue(update); |
|
|
|
} |
|
|
|
} |
|
|
|
catch |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
finally |
|
|
|
{ |
|
|
|
i++; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (updateOrderQueue.Count() > 0) |
|
|
|
{ |
|
|
|
while (true) |
|
|
|
{ |
|
|
|
if (updateOrderQueue.TryDequeue(out var update)) |
|
|
|
updateOrderList.Add(update); |
|
|
|
else |
|
|
|
break; |
|
|
|
|
|
|
|
if (updateOrderList.Count() == 10) |
|
|
|
{ |
|
|
|
Console.Write($"执行数据库 {DateTime.Now}"); |
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
foreach (var u in updateOrderList) |
|
|
|
{ |
|
|
|
u.ExecuteAffrows(); |
|
|
|
} |
|
|
|
}); |
|
|
|
updateOrderList.Clear(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (updateOrderList.Count() > 0) |
|
|
|
{ |
|
|
|
Console.Write($"最后执行数据库 {DateTime.Now}"); |
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
foreach (var u in updateOrderList) |
|
|
|
{ |
|
|
|
u.ExecuteAffrows(); |
|
|
|
} |
|
|
|
}); |
|
|
|
updateOrderList.Clear(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|