diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index ef693ea5..387ecad6 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -281,7 +281,6 @@ namespace BBWY.Server.Business var orderId = orderJToken.Value("orderId"); try { - if (insertOrderList.Any(o => o.Id == orderId)) continue; var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == orderId); @@ -292,6 +291,7 @@ namespace BBWY.Server.Business #region 优惠券/促销/拆分明细 if (!dbOrderTotalList.Any(ot => ot.Id == orderId)) { + Thread.Sleep(2000); var orderCouponDetailHttpResult = restApiService.SendRequest("http://yunding.qiyue666.com", "api/PlatformSDK/GetOrderCouponDetail", new { OrderId = orderId, @@ -883,7 +883,7 @@ namespace BBWY.Server.Business .SetIf(orderSellerPrice > 0M && dbOrder.IsGift == true, o => o.IsGift, false) .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StoreOrder, storeOrder) .SetIf(storeOrder != dbOrder.StoreOrder, o => o.StorageType, storageType) - .SetIf(dbOrderTotal != null && dbOrderTotal.TotalPingTaiChengDanYouHuiQuan != dbOrder.PreferentialAmount, o => o.PreferentialAmount, dbOrderTotal.TotalPingTaiChengDanYouHuiQuan) + .SetIf(dbOrderTotal != null && dbOrderTotal.TotalPingTaiChengDanYouHuiQuan != dbOrder.PreferentialAmount, o => o.PreferentialAmount, dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) .SetIf(storeId != dbOrder.StoreId, o => o.StoreId, storeId); updateOrderList.Add(updateSql); } diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index dbaa1713..6c79201e 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -179,25 +179,28 @@ namespace BBWY.Server.Business o.StorageType != Enums.StorageType.SD && o.StartTime >= request.StartTime && o.StartTime <= request.EndTime) + .WhereIf(!string.IsNullOrEmpty(request.OrderId), o => o.Id == request.OrderId) .ToList(o => o.Id); - //fsql.Transaction(() => - //{ - // fsql.Delete(orderIdList).ExecuteAffrows(); - // fsql.Delete().Where(on => orderIdList.Contains(on.OrderId)).ExecuteAffrows(); - // fsql.Delete().Where(op => orderIdList.Contains(op.OrderId)).ExecuteAffrows(); - //}); + fsql.Transaction(() => + { + fsql.Delete(orderIdList).ExecuteAffrows(); + fsql.Delete().Where(on => orderIdList.Contains(on.OrderId)).ExecuteAffrows(); + fsql.Delete().Where(op => orderIdList.Contains(op.OrderId)).ExecuteAffrows(); + }); - //foreach (var orderId in orderIdList) - //{ - // orderSyncBusiness.SyncOrder(shop, orderId); - // Thread.Sleep(500); - //} + foreach (var orderId in orderIdList) + { + orderSyncBusiness.SyncOrder(shop, orderId); + Thread.Sleep(1000); + } var orderList = fsql.Select(orderIdList).ToList(); var orderSkuList = fsql.Select().Where(osku => osku.Price > 0 && orderIdList.Contains(osku.OrderId)).ToList(); var orderCostDetailList = fsql.Select().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList(); - + var orderCostList = fsql.Select(orderIdList).ToList(); + var afterOrderList = fsql.Select().Where(af => orderIdList.Contains(af.OrderId)).ToList(); + var orderTotalList = fsql.Select().Where(on => orderIdList.Contains(on.Id)).ToList(); var orderIndex = 0; foreach (var order in orderList) { @@ -218,12 +221,21 @@ namespace BBWY.Server.Business var update = fsql.Update(ocd.Id).Set(x => x.SkuGrossProfit, ocd.SkuGrossProfit); updateOrderCostDetailList.Add(update); } + var currentAfterOrderList = afterOrderList.Where(af => af.OrderId == order.Id).ToList(); + var orderTotal = orderTotalList.FirstOrDefault(on => on.Id == order.Id); + var orderCost = orderCostList.FirstOrDefault(oc => oc.OrderId == order.Id); + orderCost.CalculationOrderProfitAndCost(order.OrderPayment, + orderTotal.TotalPingTaiChengDanYouHuiQuan ?? 0M, + orderTotal.TotalVenderFee ?? 0M, + currentAfterOrderList); if (updateOrderCostDetailList.Count() > 0) { fsql.Transaction(() => { foreach (var update in updateOrderCostDetailList) update.ExecuteAffrows(); + fsql.Update(orderCost.OrderId).Set(oc => oc.Profit, orderCost.Profit) + .Set(oc => oc.PlatformCommissionAmount, orderCost.PlatformCommissionAmount).ExecuteAffrows(); }); } } diff --git a/BBWY.Server.Model/Dto/Request/Test/RepairSkuDetailAndSkuGriooProfit.cs b/BBWY.Server.Model/Dto/Request/Test/RepairSkuDetailAndSkuGriooProfit.cs index 4f09dea5..3f13cd05 100644 --- a/BBWY.Server.Model/Dto/Request/Test/RepairSkuDetailAndSkuGriooProfit.cs +++ b/BBWY.Server.Model/Dto/Request/Test/RepairSkuDetailAndSkuGriooProfit.cs @@ -9,5 +9,7 @@ namespace BBWY.Server.Model.Dto public DateTime EndTime { get; set; } public long? ShopId { get; set; } + + public string OrderId { get; set; } } }