From 682a22284a517b8c4a61cdacf344567dc7da24fa Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 12 Oct 2023 21:42:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sync/OrderSyncBusiness.cs | 64 ++++++++++--------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index a389ba47..87876c91 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -302,9 +302,9 @@ namespace BBWY.Server.Business var storeOrder = orderJToken.Value("storeOrder") ?? string.Empty; var storeId = orderJToken.Value("storeId"); var storageType = ConvertStoreOrder(storeOrder); + var preferentialAmount = 0M; if (dbOrder == null) { - var preferentialAmount = 0M; dbOrder = new Order() { Id = orderId, @@ -377,37 +377,10 @@ namespace BBWY.Server.Business } #endregion - - #region 订单优惠 - if (!dbOrderCouponList.Any(oc => oc.OrderId == orderId)) - { - var orderCouponJArray = (JArray)orderJToken["couponDetailList"]; - if (orderCouponJArray.HasValues) - { - foreach (var orderCouponJToken in orderCouponJArray) - { - var couponType = orderCouponJToken.Value("couponType"); - if (string.IsNullOrEmpty(couponType)) - continue; - //dbOrder.PreferentialAmount += orderCouponJToken.Value("couponPrice"); - preferentialAmount += orderCouponJToken.Value("couponPrice"); - insertOrderCouponList.Add(new OrderCoupon() - { - Id = idGenerator.NewLong(), - SkuId = orderCouponJToken.Value("skuId"), - OrderId = orderId, - CreateTime = DateTime.Now, - CouponType = couponType, - CouponPrice = orderCouponJToken.Value("couponPrice") - }); - } - dbOrder.PreferentialAmount = preferentialAmount; - } - } - #endregion } else { + preferentialAmount = dbOrder.PreferentialAmount; if (storageType != null && dbOrder.StorageType != storageType) dbOrder.StorageType = storageType; @@ -447,6 +420,33 @@ namespace BBWY.Server.Business } #endregion + #region 订单优惠 + if (!dbOrderCouponList.Any(oc => oc.OrderId == orderId)) + { + var orderCouponJArray = (JArray)orderJToken["couponDetailList"]; + if (orderCouponJArray.HasValues) + { + foreach (var orderCouponJToken in orderCouponJArray) + { + var couponType = orderCouponJToken.Value("couponType"); + if (string.IsNullOrEmpty(couponType)) + continue; + //dbOrder.PreferentialAmount += orderCouponJToken.Value("couponPrice"); + preferentialAmount += orderCouponJToken.Value("couponPrice"); + insertOrderCouponList.Add(new OrderCoupon() + { + Id = idGenerator.NewLong(), + SkuId = orderCouponJToken.Value("skuId"), + OrderId = orderId, + CreateTime = DateTime.Now, + CouponType = couponType, + CouponPrice = orderCouponJToken.Value("couponPrice") + }); + } + } + } + #endregion + #region 订单状态转换 var orderState = ConvertOrderState(orderJToken, dbOrder.StorageType); #endregion @@ -490,7 +490,7 @@ namespace BBWY.Server.Business { OrderId = sDCalculationCostRequest.OrderId, PlatformCommissionRatio = sDCalculationCostRequest.PlatformCommissionRatio, - PreferentialAmount = dbOrder.PreferentialAmount, + PreferentialAmount = preferentialAmount, Profit = 0, DeliveryExpressFreight = sDCalculationCostRequest.DeliveryExpressFreight, CreateTime = DateTime.Now, @@ -509,7 +509,7 @@ namespace BBWY.Server.Business var orderCostPurchaseAmount = 0M; var orderDeliveryExpressFreight = 0M; //发货总运费,sku购买数量第二个开始半价 - var avgPreferential = dbOrder.PreferentialAmount / orderSkuJArray.Count(); + var avgPreferential = preferentialAmount / orderSkuJArray.Count(); #region 扣减库存 foreach (var orderSkuJToken in orderSkuJArray) @@ -605,6 +605,7 @@ namespace BBWY.Server.Business if (isNewOrder) { dbOrder.OrderState = orderState; + dbOrder.PreferentialAmount = preferentialAmount; } else if ((orderState != null && orderState != dbOrder.OrderState) || buyerRemark != dbOrder.BuyerRemark || @@ -619,6 +620,7 @@ namespace BBWY.Server.Business (orderSellerPrice > 0M && dbOrder.IsGift) || orderTotalPrice != dbOrder.OrderTotalPrice || storeOrder != dbOrder.StoreOrder || + //preferentialAmount != dbOrder.PreferentialAmount || storeId != dbOrder.StoreId) { var updateSql = fsql.Update(orderId).SetIf(orderState != null && orderState != dbOrder.OrderState, o => o.OrderState, orderState)