From 27c306584f3fcb4417b506237321774d911c164e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 11 Sep 2023 00:25:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E7=BD=91=E6=8E=A8=E9=80=81C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/DataRepairController.cs | 8 +- .../DataRepair/DataRepairBusiness.cs | 117 +++++++++++++++++- BBWYB.Server.Business/Order/OrderBusiness.cs | 12 +- .../PurchaseOrder/PurchaseOrderBusiness.cs | 12 +- 4 files changed, 140 insertions(+), 9 deletions(-) diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index b1b3720..35ac049 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -73,6 +73,12 @@ namespace BBWYB.Server.API.Controllers [HttpPost] public void SyncHistoryPurchaseScheme() - { dataRepairBusiness.SyncHistoryPurchaseScheme();} + { dataRepairBusiness.SyncHistoryPurchaseScheme(); } + + [HttpPost] + public void BatchCompleteOrder() + { + dataRepairBusiness.BatchCompleteOrder(); + } } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index e7c4272..3af8d51 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -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 insertHistoryPSList = new List(); List insertHistoryPSPList = new List(); List insertHistoryPSSList = new List(); - + 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.已完成 }; + //var orderList = fsql.Select().Where(o => o.StartTime < time && !orderStateList.Contains(o.OrderState)).ToList(); + + var orderList = fsql.Select().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> updateOrderQueue = new Queue>(); + List> updateOrderList = new List>(); + 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.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.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.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(); + } + } + } } } diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 636814a..b231f07 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -782,15 +782,21 @@ namespace BBWYB.Server.Business { try { - restApiService.SendRequest("https://bbwy.qiyue666.com", "api/BatchPurchase/UpdatePurchaseOrderState", new +#if DEBUG + var url = "https://bbwy.qiyue666.com"; +#else + var url = "http://172.16.54.105:8090"; +#endif + + restApiService.SendRequest(url, "api/BatchPurchase/UpdatePurchaseOrderState", new { OrderId = orderId, PurchaseOrderState = orderState }, null, HttpMethod.Post); } - catch + catch (Exception ex) { - + nLogManager.Default().Error(ex, $"OrderId-{orderId}推送C订单状态[{orderState}]失败"); } } diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index ebe5db3..15ea68e 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -3071,15 +3071,21 @@ namespace BBWYB.Server.Business { try { - restApiService.SendRequest("https://bbwy.qiyue666.com", "api/BatchPurchase/UpdatePurchaseOrderState", new +#if DEBUG + var url = "https://bbwy.qiyue666.com"; +#else + var url = "http://172.16.54.105:8090"; +#endif + + restApiService.SendRequest(url, "api/BatchPurchase/UpdatePurchaseOrderState", new { OrderId = orderId, PurchaseOrderState = orderState }, null, HttpMethod.Post); } - catch + catch (Exception ex) { - + nLogManager.Default().Error(ex, $"OrderId-{orderId}推送C订单状态[{orderState}]失败"); } }