|
@ -92,5 +92,48 @@ namespace BBWYB.Server.Business |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void SupplementOrderSkuCost() |
|
|
|
|
|
{ |
|
|
|
|
|
var orderSkuCostList = fsql.Select<OrderCostDetail, Order>().InnerJoin((ocd, o) => ocd.OrderId == o.Id) |
|
|
|
|
|
.Where((ocd, o) => ocd.IsEnabled == true && |
|
|
|
|
|
o.IsPurchased == true && |
|
|
|
|
|
o.OrderState != Enums.OrderState.已取消 && |
|
|
|
|
|
!fsql.Select<OrderSkuCost>().As("osc").Where(osc => osc.OrderId == o.Id).Any()) |
|
|
|
|
|
.GroupBy((ocd, o) => new { ocd.OrderId, ocd.SkuId }) |
|
|
|
|
|
.ToList(g => new |
|
|
|
|
|
{ |
|
|
|
|
|
OrderId = g.Key.OrderId, |
|
|
|
|
|
SkuId = g.Key.SkuId, |
|
|
|
|
|
SkuAmount = g.Sum(g.Value.Item1.SkuAmount), |
|
|
|
|
|
PurchaseFreight = g.Sum(g.Value.Item1.PurchaseFreight) |
|
|
|
|
|
}); |
|
|
|
|
|
var orderIds = orderSkuCostList.Select(x => x.OrderId).Distinct().ToList(); |
|
|
|
|
|
var orderSkuList = fsql.Select<OrderSku>().Where(osku => orderIds.Contains(osku.OrderId)).ToList(); |
|
|
|
|
|
|
|
|
|
|
|
var insertOrderSkuCostList = new List<OrderSkuCost>(); |
|
|
|
|
|
foreach (var osc in orderSkuCostList) |
|
|
|
|
|
{ |
|
|
|
|
|
var osku = orderSkuList.FirstOrDefault(osku => osku.SkuId == osc.SkuId && osku.OrderId == osc.OrderId); |
|
|
|
|
|
var insert = new OrderSkuCost() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
|
|
CreateTime = DateTime.Now, |
|
|
|
|
|
DeliveryExpressFreight = 0M, |
|
|
|
|
|
OrderId = osc.OrderId, |
|
|
|
|
|
SkuId = osc.SkuId, |
|
|
|
|
|
OutPackAmount = 0M, |
|
|
|
|
|
PurchaseFreight = osc.PurchaseFreight, |
|
|
|
|
|
SkuAmount = osc.SkuAmount, |
|
|
|
|
|
TotalCost = osc.PurchaseFreight + osc.SkuAmount, |
|
|
|
|
|
Profit = ((osku.Price * osku.ItemTotal) ?? 0M) - osc.PurchaseFreight - osc.SkuAmount |
|
|
|
|
|
}; |
|
|
|
|
|
insertOrderSkuCostList.Add(insert); |
|
|
|
|
|
} |
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
|
|
{ |
|
|
|
|
|
fsql.Insert(insertOrderSkuCostList).ExecuteAffrows(); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|