diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 28749ba..6dda589 100644
--- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -387,8 +387,8 @@ namespace BBWYB.Server.Business
///
private void OrderPriceModificationCallbackFrom1688(JObject jObject)
{
- //var purchaseOrderId = jObject["data"].Value("orderId");
- //Task.Factory.StartNew(() => OrderPriceModificationCallback(purchaseOrderId, Enums.Platform.阿里巴巴), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
+ var purchaseOrderId = jObject["data"].Value("orderId");
+ Task.Factory.StartNew(() => OrderPriceModificationCallback(purchaseOrderId, Enums.Platform.阿里巴巴), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
#endregion
@@ -612,145 +612,72 @@ namespace BBWYB.Server.Business
}, CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
- /////
- ///// 采购平台改价回调
- /////
- /////
- /////
- //private void OrderPriceModificationCallback(string purchaseOrderId, Enums.Platform callbackPlatform)
- //{
- // string currentProgress = string.Empty;
-
- // try
- // {
- // #region 查询代发信息
- // currentProgress = "查询代发信息";
- // var orderDropshipping = fsql.Select().Where(o => o.PurchaseOrderId == purchaseOrderId).ToOne();
- // if (orderDropshipping == null)
- // throw new Exception("未查询到代发信息");
- // #endregion
-
- // #region 查询订单Sku
- // currentProgress = "查询订单Sku";
- // var orderSkuList = fsql.Select().Where(osku => osku.Price != 0 && osku.OrderId == orderDropshipping.OrderId).ToList();
- // if (orderSkuList == null || orderSkuList.Count() == 0)
- // throw new BusinessException("订单Sku不存在");
- // #endregion
-
- // #region 查询采购单
- // currentProgress = "查询采购单";
- // var purchaseOrderList = fsql.Select().Where(po => po.PurchaseOrderId == purchaseOrderId).ToList();
- // if (purchaseOrderList == null || purchaseOrderList.Count() == 0)
- // throw new BusinessException("采购单不存在");
- // if (orderSkuList.Count() > 1 && purchaseOrderList.Any(p => p.PurchaseMethod == Enums.PurchaseMethod.线下采购))
- // throw new Exception("多sku订单关联采购单不支持改价");
- // #endregion
-
- // #region 查询成本
- // currentProgress = "查询成本";
- // var orderCost = fsql.Select(orderDropshipping.OrderId).ToOne();
- // if (orderCost == null)
- // throw new BusinessException("订单成本不存在");
- // #endregion
-
- // #region 查询成本明细
- // currentProgress = "查询成本明细";
- // var orderCostDetailList = fsql.Select().Where(ocd => ocd.OrderId == orderDropshipping.OrderId).ToList();
- // if (orderCostDetailList == null || orderCostDetailList.Count() == 0)
- // throw new BusinessException("订单成本明细不存在");
- // #endregion
-
- // #region 查询采购账号
- // currentProgress = "查询采购账号";
- // var purchaseAccount = fsql.Select().WhereIf(orderDropshipping.PurchaseAccountId != 0, pa => pa.Id == orderDropshipping.PurchaseAccountId)
- // .WhereIf(orderDropshipping.PurchaseAccountId == 0, pa => pa.AccountName == orderDropshipping.BuyerAccount)
- // .Where(pa => pa.PurchasePlatformId == callbackPlatform).ToOne();
- // if (purchaseAccount == null)
- // throw new Exception($"未查询到采购账号{orderDropshipping.BuyerAccount}");
- // #endregion
-
- // #region 查询改价后的订单金额
- // currentProgress = "查询改价后的订单金额";
- // var purchaseOrderSimpleInfo = platformSDKBusinessList.FirstOrDefault(p => p.Platform == callbackPlatform).GetOrderSimpleInfo(new GetOrderInfoRequest()
- // {
- // AppKey = purchaseAccount.AppKey,
- // AppSecret = purchaseAccount.AppSecret,
- // AppToken = purchaseAccount.AppToken,
- // OrderId = purchaseOrderId,
- // Platform = callbackPlatform
- // });
- // #endregion
-
- // #region 查询采购单明细
- // currentProgress = "查询采购单明细";
- // var purchaseOrderDetails = fsql.Select().Where(p => p.OrderId == orderDropshipping.OrderId);
- // #endregion
-
- // #region 查询订单
- // currentProgress = "查询订单";
- // var dbOrder = fsql.Select(orderDropshipping.OrderId).ToOne();
- // if (dbOrder == null)
- // throw new BusinessException("订单不存在");
- // #endregion
-
- // IList> updatePurchaseOrders = new List>();
- // IList> updateOrderCostDetails = new List>();
-
- // foreach (var orderSku in orderSkuList)
- // {
- // var currentOrderSkuProductAmount = 0M; //采购成本
- // if (orderSkuList.Count() != 1)
- // {
- // var currentOrderSkuPurchaseOrderDetails = purchaseOrderDetails.Where(p => p.SkuId == orderSku.SkuId); //找当前skuId的采购skuId
- // currentOrderSkuProductAmount = purchaseOrderSimpleInfo.ItemList.Where(p => currentOrderSkuPurchaseOrderDetails.Any(p1 => p1.PurchaseSkuId == p.SkuId))
- // ?.Sum(p => p.ProductAmount) ?? 0M;
- // }
- // else
- // {
- // currentOrderSkuProductAmount = purchaseOrderSimpleInfo.ProductAmount;
- // }
- // var currentOrderSkuFreightAmount = purchaseOrderSimpleInfo.FreightAmount / orderSkuList.Count(); //采购运费(按sku数均分)
-
- // var purchaseOrder = purchaseOrderList.FirstOrDefault(po => po.SkuId == orderSku.SkuId);
- // var orderCostDetail = orderCostDetailList.FirstOrDefault(oc => oc.PurchaseOrderPKId == purchaseOrder.Id);
-
- // purchaseOrder.SingleSkuAmount = currentOrderSkuProductAmount / orderSku.ItemTotal.Value;
- // purchaseOrder.SingleFreight = currentOrderSkuFreightAmount / orderSku.ItemTotal.Value;
-
- // orderCostDetail.SkuAmount = currentOrderSkuProductAmount;
- // orderCostDetail.PurchaseFreight = currentOrderSkuFreightAmount;
- // //orderCostDetail.UnitCost = purchaseOrder.UnitCost;
- // //orderCostDetail.TotalCost = currentOrderSkuProductAmount + currentOrderSkuFreightAmount;
-
- // updatePurchaseOrders.Add(fsql.Update().SetSource(purchaseOrder));
- // updateOrderCostDetails.Add(fsql.Update().SetSource(orderCostDetail));
-
-
- // }
- // orderCost.PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount;
- // orderCost.Profit = dbOrder.OrderSellerPrice +
- // dbOrder.FreightPrice -
- // orderCost.PurchaseAmount -
- // orderCost.DeliveryExpressFreight -
- // orderCost.PlatformCommissionAmount;
-
- // orderDropshipping.PurchaseAmount = purchaseOrderSimpleInfo.TotalAmount;
- // orderDropshipping.SkuAmount = purchaseOrderSimpleInfo.ProductAmount;
- // orderDropshipping.PurchaseFreight = purchaseOrderSimpleInfo.FreightAmount;
- // fsql.Transaction(() =>
- // {
- // foreach (var update in updatePurchaseOrders)
- // update.ExecuteAffrows();
- // foreach (var update in updateOrderCostDetails)
- // update.ExecuteAffrows();
- // fsql.Update().SetSource(orderCost).ExecuteAffrows();
- // fsql.Update().SetSource(orderDropshipping).ExecuteAffrows();
- // });
- // }
- // catch (Exception ex)
- // {
- // nLogManager.Default().Error(ex, $"OrderPriceModificationCallback 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]");
- // }
- //}
+ ///
+ /// 采购平台改价回调
+ ///
+ ///
+ ///
+ private void OrderPriceModificationCallback(string purchaseOrderId, Enums.Platform callbackPlatform)
+ {
+ string currentProgress = string.Empty;
+
+ try
+ {
+ var orderPurchaseInfo = fsql.Select().Where(opi => opi.PurchaseOrderId == purchaseOrderId).ToOne();
+ if (orderPurchaseInfo == null)
+ throw new Exception($"未查询到采购单{orderPurchaseInfo.PurchaseAccountId}");
+
+ var purchaseAccount = fsqlManager.MDSfsql.Select().Where(pa => pa.Id == orderPurchaseInfo.PurchaseAccountId).ToOne();
+ if (purchaseAccount == null)
+ throw new Exception($"未查询到采购账号{orderPurchaseInfo.PurchaseAccountId}");
+
+ var dbOrder = fsql.Select(orderPurchaseInfo.OrderId).ToOne(o => new { o.OrderTotalPrice });
+ var dbOrderCost = fsql.Select(orderPurchaseInfo.OrderId).ToOne();
+ if (dbOrderCost == null)
+ throw new Exception($"未查询到订单成本 {orderPurchaseInfo.OrderId}");
+
+ var orderPurchaseInfoList = fsql.Select().Where(opi => opi.OrderId == orderPurchaseInfo.OrderId).ToList(opi => new
+ {
+ opi.PurchaseOrderId,
+ opi.PurchaseAccountId
+ });
+ var client = ppPlatformClientFactory.GetClient(AdapterEnums.PlatformType.阿里巴巴);
+
+ var totalPurchaseAmount = 0M;
+ foreach (var opi in orderPurchaseInfoList)
+ {
+ var purchaseOrderSimpleInfo = client.QueryOrderDetail(new PP_QueryOrderDetailRequest()
+ {
+ AppKey = purchaseAccount.AppKey,
+ AppSecret = purchaseAccount.AppSecret,
+ AppToken = purchaseAccount.AppToken,
+ OrderId = opi.PurchaseOrderId
+ });
+ totalPurchaseAmount += purchaseOrderSimpleInfo.TotalAmount;
+ }
+
+
+ //var oldTotalAmount = dbOrderCost.PurchaseAmount;
+ //var oldProductAmount = dbOrderCostDetailList.Sum(ocd => ocd.SkuAmount);
+ //var oldPurchaseFreight = dbOrderCostDetailList.Sum(ocd => ocd.PurchaseFreight);
+
+ dbOrderCost.PurchaseAmount = totalPurchaseAmount;
+ dbOrderCost.Profit = dbOrder.OrderTotalPrice -
+ dbOrderCost.PurchaseAmount -
+ dbOrderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount
+
+ fsql.Transaction(() =>
+ {
+ fsql.Update(dbOrderCost.OrderId).Set(oc => oc.PurchaseAmount, dbOrderCost.PurchaseAmount)
+ .Set(oc => oc.Profit, dbOrderCost.Profit)
+ .ExecuteAffrows();
+ });
+
+ }
+ catch (Exception ex)
+ {
+ nLogManager.Default().Error(ex, $"OrderPriceModificationCallback 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]");
+ }
+ }
}
}