Browse Source

修复订单数据

yijia
shanji 2 years ago
parent
commit
fb430bfddf
  1. 9
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 43
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

9
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -33,5 +33,14 @@ namespace BBWYB.Server.API.Controllers
{ {
dataRepairBusiness.SupplementPurchaserInfo(); dataRepairBusiness.SupplementPurchaserInfo();
} }
/// <summary>
/// 修复订单Sku成本
/// </summary>
[HttpPost]
public void SupplementOrderSkuCost()
{
dataRepairBusiness.SupplementOrderSkuCost();
}
} }
} }

43
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -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();
});
}
} }
} }

Loading…
Cancel
Save