diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index e2b5f5bf..fa81b874 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -1542,7 +1542,23 @@ namespace BBWY.Server.Business private void SyncJDRefundOrder(JArray refundOrderTokenJArray, ShopResponse shopResponse) { var validRefundOrderTokenJArray = refundOrderTokenJArray.Where(j => j.Value("status") == 13 && j.Value("refoundAmount") != 0M).ToList(); - //var orderIds + var orderIds = validRefundOrderTokenJArray.Select(j => j["sameOrderServiceBill"]["orderId"].ToString()).Distinct().ToList(); + var orderSkuIds = validRefundOrderTokenJArray.Select(j => j["sameOrderServiceBill"]["wareId"].ToString()).Distinct().ToList(); + + var dbOrders = fsql.Select().Where(o => orderIds.Contains(o.Id) && o.IsAfterSaleOrder == false).ToList(); + var dbOrderSkus = fsql.Select().Where(osku => orderIds.Contains(osku.OrderId) && + orderSkuIds.Contains(osku.SkuId) && + osku.IsRefund == false).ToList(); + + fsql.Transaction(() => + { + if (dbOrders.Count() > 0) + foreach (var dbOrder in dbOrders) + fsql.Update(dbOrder.Id).Set(o => o.IsAfterSaleOrder, true).ExecuteAffrows(); + if (dbOrderSkus.Count() > 0) + foreach (var dbOrderSku in dbOrderSkus) + fsql.Update(dbOrderSku.Id).Set(osku => osku.IsRefund, true).ExecuteAffrows(); + }); } public void SyncRefundOrder(ShopResponse shop, string orderId, DateTime? startTime = null, DateTime? endTime = null, bool isAuto = false)