Browse Source

内网推送C

yijia
shanji 2 years ago
parent
commit
27c306584f
  1. 8
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 115
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  3. 12
      BBWYB.Server.Business/Order/OrderBusiness.cs
  4. 12
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

8
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -73,6 +73,12 @@ namespace BBWYB.Server.API.Controllers
[HttpPost] [HttpPost]
public void SyncHistoryPurchaseScheme() public void SyncHistoryPurchaseScheme()
{ dataRepairBusiness.SyncHistoryPurchaseScheme();} { dataRepairBusiness.SyncHistoryPurchaseScheme(); }
[HttpPost]
public void BatchCompleteOrder()
{
dataRepairBusiness.BatchCompleteOrder();
}
} }
} }

115
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -5,6 +5,9 @@ using BBWYB.Server.Model;
using BBWYB.Server.Model.Db; using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto; using BBWYB.Server.Model.Dto;
using FreeSql; using FreeSql;
using SDKAdapter;
using SDKAdapter.OperationPlatform.Client;
using SDKAdapter.OperationPlatform.Models;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using Yitter.IdGenerator; using Yitter.IdGenerator;
@ -17,13 +20,15 @@ namespace BBWYB.Server.Business
private PurchaseOrderBusiness purchaseOrderBusiness; private PurchaseOrderBusiness purchaseOrderBusiness;
private FreeSqlMultiDBManager freeSqlMultiDBManager; private FreeSqlMultiDBManager freeSqlMultiDBManager;
private VenderBusiness venderBusiness; 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.kuaiDi100Manager = kuaiDi100Manager;
this.purchaseSchemeBusiness = purchaseSchemeBusiness; this.purchaseSchemeBusiness = purchaseSchemeBusiness;
this.purchaseOrderBusiness = purchaseOrderBusiness; this.purchaseOrderBusiness = purchaseOrderBusiness;
this.freeSqlMultiDBManager = freeSqlMultiDBManager; this.freeSqlMultiDBManager = freeSqlMultiDBManager;
this.venderBusiness = venderBusiness; this.venderBusiness = venderBusiness;
this.opPlatformClientFactory = opPlatformClientFactory;
} }
@ -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();
}
}
}
} }
} }

12
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -782,15 +782,21 @@ namespace BBWYB.Server.Business
{ {
try 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, OrderId = orderId,
PurchaseOrderState = orderState PurchaseOrderState = orderState
}, null, HttpMethod.Post); }, null, HttpMethod.Post);
} }
catch catch (Exception ex)
{ {
nLogManager.Default().Error(ex, $"OrderId-{orderId}推送C订单状态[{orderState}]失败");
} }
} }

12
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -3071,15 +3071,21 @@ namespace BBWYB.Server.Business
{ {
try 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, OrderId = orderId,
PurchaseOrderState = orderState PurchaseOrderState = orderState
}, null, HttpMethod.Post); }, null, HttpMethod.Post);
} }
catch catch (Exception ex)
{ {
nLogManager.Default().Error(ex, $"OrderId-{orderId}推送C订单状态[{orderState}]失败");
} }
} }

Loading…
Cancel
Save