diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 3724745c..990bf5a5 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -221,7 +221,9 @@ namespace BBWY.Server.Business List insertOrderSkuList = new List(); List insertOrderCouponList = new List(); + IList> updateOrderList = new List>(); + IList> updateOrderSkuList = new List>(); IList> updatePurchaseOrderList = new List>(); #endregion @@ -254,6 +256,7 @@ namespace BBWY.Server.Business var dbOrderConsigneeList = fsql.Select().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单收货信息 var dbOrderCostList = fsql.Select().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单成本信息 var dbOrderCouponList = fsql.Select().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单优惠信息 + var dbOrderSkuList = fsql.Select().Where(osku => interfaceOrderIdList.Contains(osku.OrderId)).ToList(); //数据库sku信息 List dbOrderCostDetailList = null; //数据库成本明细 if (interfaceCanceledOrderIdList.Count() > 0 && @@ -379,6 +382,23 @@ namespace BBWY.Server.Business { if (storageType != null && dbOrder.StorageType != storageType) dbOrder.StorageType = storageType; + + var currentDbOrderSkuList = dbOrderSkuList.Where(osku => osku.OrderId == orderId).ToList(); + + #region OrderSku + var itemInfoList = orderJToken["itemInfoList"] as JArray; + foreach (var orderSkuJToken in itemInfoList) + { + //var itemTotal = orderSkuJToken.Value("itemTotal"); + //var jdPrice = orderSkuJToken.Value("jdPrice"); + var wareId = orderSkuJToken.Value("wareId"); + var skuId = orderSkuJToken.Value("skuId"); + var dbOsku = currentDbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId); + if (dbOsku != null && dbOsku.ProductId != wareId) + { + updateOrderSkuList.Add(fsql.Update(dbOsku.Id).Set(osku => osku.ProductId, wareId)); + } + } } #endregion @@ -693,6 +713,12 @@ namespace BBWY.Server.Business foreach (var update in updateOrderList) update.ExecuteAffrows(); } + + if (updateOrderSkuList.Count() > 0) + { + foreach (var update in updateOrderSkuList) + update.ExecuteAffrows(); + } }); }