From 2aa7bb17dc067c605af8b3568d347fe0c8d3a411 Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Thu, 20 Jan 2022 17:36:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95=E6=81=A2?= =?UTF-8?q?=E5=A4=8D=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.Business/Order/OrderBusiness.cs | 28 ++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 68c71206..994e0389 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -532,17 +532,27 @@ namespace BBWY.Server.Business var orderTokenList = orderTokenJArray.Where(o => o.Value("orderTotalPrice") != 0); var interfaceOrderIdList = orderTokenList.Select(orderJToken => orderJToken.Value("orderId")); + var interfaceCanceledOrderIdList = orderTokenList.Where(orderJToken => orderJToken.Value("orderState").Equals("TRADE_CANCELED")) + .Select(orderJToken => orderJToken.Value("orderId")); //接口查询结果中取消状态的订单Id + var dbOrderList = fsql.Select().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order() { Id = o.Id, OrderState = o.OrderState, StorageType = o.StorageType }); //数据库订单 - 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(); //数据库订单优惠信息 + List dbOrderCostDetailList = null; //数据库成本明细 + if (interfaceCanceledOrderIdList.Count() > 0 && + dbOrderList.Any(dbOrder => interfaceCanceledOrderIdList.Contains(dbOrder.Id) && dbOrder.OrderState != Enums.OrderState.已取消)) + { + dbOrderCostDetailList = fsql.Select().Where(ocd => interfaceCanceledOrderIdList.Contains(ocd.OrderId)).ToList(); + } + + var orderSkuIds = new List(); foreach (var orderJToken in orderTokenList) { @@ -741,6 +751,22 @@ namespace BBWY.Server.Business #endregion + #region 取消订单恢复库存 + if (orderState == Enums.OrderState.已取消 && !isNewOrder && dbOrder.OrderState != Enums.OrderState.已取消) + { + var currentOrderCostDetailList = dbOrderCostDetailList.Where(ocd => ocd.OrderId == orderId); + if (currentOrderCostDetailList.Count() > 0) + { + foreach (var orderCostDetail in currentOrderCostDetailList) + { + var updateSql = fsql.Update(orderCostDetail.PurchaseOrderPKId) + .Set(po => po.RemainingQuantity + orderCostDetail.DeductionQuantity); + updatePurchaseOrderList.Add(updateSql); + } + } + } + #endregion + #region 扣减库存, 计算成本 if (dbOrder.StorageType != null && dbOrder.StorageType != Enums.StorageType.SD &&