Browse Source

取消订单恢复库存

qianyi
shanji 3 years ago
parent
commit
2aa7bb17dc
  1. 28
      BBWY.Server.Business/Order/OrderBusiness.cs

28
BBWY.Server.Business/Order/OrderBusiness.cs

@ -532,17 +532,27 @@ namespace BBWY.Server.Business
var orderTokenList = orderTokenJArray.Where(o => o.Value<decimal>("orderTotalPrice") != 0);
var interfaceOrderIdList = orderTokenList.Select(orderJToken => orderJToken.Value<string>("orderId"));
var interfaceCanceledOrderIdList = orderTokenList.Where(orderJToken => orderJToken.Value<string>("orderState").Equals("TRADE_CANCELED"))
.Select(orderJToken => orderJToken.Value<string>("orderId")); //接口查询结果中取消状态的订单Id
var dbOrderList = fsql.Select<Order>().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order()
{
Id = o.Id,
OrderState = o.OrderState,
StorageType = o.StorageType
}); //数据库订单
var dbOrderConsigneeList = fsql.Select<OrderConsignee>().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单收货信息
var dbOrderCostList = fsql.Select<OrderCost>().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单成本信息
var dbOrderCouponList = fsql.Select<OrderCoupon>().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单优惠信息
List<OrderCostDetail> dbOrderCostDetailList = null; //数据库成本明细
if (interfaceCanceledOrderIdList.Count() > 0 &&
dbOrderList.Any(dbOrder => interfaceCanceledOrderIdList.Contains(dbOrder.Id) && dbOrder.OrderState != Enums.OrderState.))
{
dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => interfaceCanceledOrderIdList.Contains(ocd.OrderId)).ToList();
}
var orderSkuIds = new List<string>();
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<PurchaseOrder>(orderCostDetail.PurchaseOrderPKId)
.Set(po => po.RemainingQuantity + orderCostDetail.DeductionQuantity);
updatePurchaseOrderList.Add(updateSql);
}
}
}
#endregion
#region 扣减库存, 计算成本
if (dbOrder.StorageType != null &&
dbOrder.StorageType != Enums.StorageType.SD &&

Loading…
Cancel
Save