Browse Source

Merge branch 'SupplyChainOptimization'

liangku_skuoptimazation
shanji 2 years ago
parent
commit
6e324dd1b3
  1. 164
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  2. 2
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  3. 2
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs

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

@ -667,95 +667,95 @@ namespace BBWYB.Server.Business
#endregion
#region 采购商累计信息
{
#region 采购SKU数
var purchaserPurchasedList = fsql.Select<OrderPurchaseRelationInfo, Order, OrderPurchaseInfo>()
.InnerJoin((opri, o, opi) => opri.OrderId == o.Id)
.InnerJoin((opri, o, opi) => opi.OrderId == opri.OrderId && opi.IsEnabled == true)
.Where((opri, o, opi) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11 && !string.IsNullOrEmpty(opi.PurchaserId))
.GroupBy((opri, o, opi) => new { o.ShopId, opi.PurchaserId, opri.BelongSkuId })
.ToList(g => new
{
g.Key.ShopId,
g.Key.PurchaserId,
g.Key.BelongSkuId
});
var purchaserPurchasedGroups = purchaserPurchasedList.GroupBy(x => x.PurchaserId);
foreach (var g in purchaserPurchasedGroups)
{
updatePurchaserList.Add(new Purchaser()
{
Id = g.Key,
PurchasedSkuCount = g.Count(),
PurchasedCount = 0
});
insertSkuHistoryPurchaserRelationList.AddRange(g.Select(x => new SkuHistoryPurchaserRelation()
{
CreateTime = DateTime.Now,
Id = idGenerator.NewLong(),
PurchaserId = x.PurchaserId,
ShopId = x.ShopId,
SkuId = x.BelongSkuId
}));
}
#endregion
#region 采购次数
/*
select opi.PurchaserId,count(DISTINCT(opi.OrderId)) from orderpurchaserelationinfo opri
inner join `order` o on opri.OrderId=o.Id
inner join orderpurchaseinfo opi on opi.OrderId=opri.OrderId and opi.IsEnabled=1
where o.OrderState not in (0,6) and o.ShopId !=11 and opi.PurchaserId is not null
group by opi.PurchaserId;
*/
var purchaserPurchasedCountList = fsql.Select<OrderPurchaseRelationInfo, Order, OrderPurchaseInfo>()
.InnerJoin((opri, o, opi) => opri.OrderId == o.Id)
.InnerJoin((opri, o, opi) => opi.OrderId == opri.OrderId && opi.IsEnabled == true)
.Where((opri, o, opi) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11 && !string.IsNullOrEmpty(opi.PurchaserId))
.GroupBy((opri, o, opi) => opi.PurchaserId)
.ToList(g => new
{
PurchaserId = g.Key,
//Count = g.Count(g.Value.Item3.OrderId.Distinct())
Count = SqlExt.DistinctCount(g.Value.Item3.OrderId)
});
//#region 采购商累计信息
//{
// #region 采购SKU数
// var purchaserPurchasedList = fsql.Select<OrderPurchaseRelationInfo, Order, OrderPurchaseInfo>()
// .InnerJoin((opri, o, opi) => opri.OrderId == o.Id)
// .InnerJoin((opri, o, opi) => opi.OrderId == opri.OrderId && opi.IsEnabled == true)
// .Where((opri, o, opi) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11 && !string.IsNullOrEmpty(opi.PurchaserId))
// .GroupBy((opri, o, opi) => new { o.ShopId, opi.PurchaserId, opri.BelongSkuId })
// .ToList(g => new
// {
// g.Key.ShopId,
// g.Key.PurchaserId,
// g.Key.BelongSkuId
// });
foreach (var pcount in purchaserPurchasedCountList)
{
var p = updatePurchaserList.FirstOrDefault(x => x.Id == pcount.PurchaserId);
if (p == null)
{
p = new Purchaser() { Id = pcount.PurchaserId, PurchasedSkuCount = 0 };
updatePurchaserList.Add(p);
}
p.PurchasedCount = Convert.ToInt32(pcount.Count);
}
// var purchaserPurchasedGroups = purchaserPurchasedList.GroupBy(x => x.PurchaserId);
// foreach (var g in purchaserPurchasedGroups)
// {
// updatePurchaserList.Add(new Purchaser()
// {
// Id = g.Key,
// PurchasedSkuCount = g.Count(),
// PurchasedCount = 0
// });
// insertSkuHistoryPurchaserRelationList.AddRange(g.Select(x => new SkuHistoryPurchaserRelation()
// {
// CreateTime = DateTime.Now,
// Id = idGenerator.NewLong(),
// PurchaserId = x.PurchaserId,
// ShopId = x.ShopId,
// SkuId = x.BelongSkuId
// }));
// }
// #endregion
//var purchaserPurchasedCountDataTable = fsql.Ado.ExecuteDataTable(@"select opi.PurchaserId,count(DISTINCT(opi.OrderId)) from orderpurchaserelationinfo opri
// #region 采购次数
// /*
// select opi.PurchaserId,count(DISTINCT(opi.OrderId)) from orderpurchaserelationinfo opri
// inner join `order` o on opri.OrderId=o.Id
// inner join orderpurchaseinfo opi on opi.OrderId=opri.OrderId and opi.IsEnabled=1
// where o.OrderState not in (0,6) and o.ShopId !=11 and opi.PurchaserId is not null
// group by opi.PurchaserId;");
//foreach (DataRow dataRow in purchaserPurchasedCountDataTable.Rows)
// group by opi.PurchaserId;
// */
// var purchaserPurchasedCountList = fsql.Select<OrderPurchaseRelationInfo, Order, OrderPurchaseInfo>()
// .InnerJoin((opri, o, opi) => opri.OrderId == o.Id)
// .InnerJoin((opri, o, opi) => opi.OrderId == opri.OrderId && opi.IsEnabled == true)
// .Where((opri, o, opi) => !noOrderStateList.Contains(o.OrderState) && o.ShopId != 11 && !string.IsNullOrEmpty(opi.PurchaserId))
// .GroupBy((opri, o, opi) => opi.PurchaserId)
// .ToList(g => new
// {
// var purchaserId = dataRow[0].ToString();
// var count = dataRow[1].ToInt32() ?? 0;
// PurchaserId = g.Key,
// //Count = g.Count(g.Value.Item3.OrderId.Distinct())
// Count = SqlExt.DistinctCount(g.Value.Item3.OrderId)
// });
// var p = updatePurchaserList.FirstOrDefault(x => x.Id == purchaserId);
// foreach (var pcount in purchaserPurchasedCountList)
// {
// var p = updatePurchaserList.FirstOrDefault(x => x.Id == pcount.PurchaserId);
// if (p == null)
// {
// p = new Purchaser() { Id = purchaserId, PurchasedSkuCount = 0 };
// p = new Purchaser() { Id = pcount.PurchaserId, PurchasedSkuCount = 0 };
// updatePurchaserList.Add(p);
// }
// p.PurchasedCount = count;
// p.PurchasedCount = Convert.ToInt32(pcount.Count);
// }
// //var purchaserPurchasedCountDataTable = fsql.Ado.ExecuteDataTable(@"select opi.PurchaserId,count(DISTINCT(opi.OrderId)) from orderpurchaserelationinfo opri
// // inner join `order` o on opri.OrderId = o.Id
// // inner join orderpurchaseinfo opi on opi.OrderId = opri.OrderId and opi.IsEnabled = 1
// // where o.OrderState not in (0, 6) and o.ShopId != 11 and opi.PurchaserId is not null
// // group by opi.PurchaserId;");
// //foreach (DataRow dataRow in purchaserPurchasedCountDataTable.Rows)
// //{
// // var purchaserId = dataRow[0].ToString();
// // var count = dataRow[1].ToInt32() ?? 0;
// // var p = updatePurchaserList.FirstOrDefault(x => x.Id == purchaserId);
// // if (p == null)
// // {
// // p = new Purchaser() { Id = purchaserId, PurchasedSkuCount = 0 };
// // updatePurchaserList.Add(p);
// // }
// // p.PurchasedCount = count;
// //}
// #endregion
//}
#endregion
}
#endregion
//#endregion
fsql.Transaction(() =>
{
@ -774,12 +774,12 @@ namespace BBWYB.Server.Business
.Set(ps => ps.PurchasedAmount, updatePs.PurchasedAmount)
.ExecuteAffrows();
}
foreach (var updatePurchaser in updatePurchaserList)
{
fsql.Update<Purchaser>(updatePurchaser.Id).Set(p => p.PurchasedSkuCount, updatePurchaser.PurchasedSkuCount)
.Set(p => p.PurchasedCount, updatePurchaser.PurchasedCount)
.ExecuteAffrows();
}
//foreach (var updatePurchaser in updatePurchaserList)
//{
// fsql.Update<Purchaser>(updatePurchaser.Id).Set(p => p.PurchasedSkuCount, updatePurchaser.PurchasedSkuCount)
// .Set(p => p.PurchasedCount, updatePurchaser.PurchasedCount)
// .ExecuteAffrows();
//}
fsql.Insert(insertSpuSaleInfoList).ExecuteAffrows();
fsql.Insert(insertSkuSaleInfoList).ExecuteAffrows();
fsql.Insert(insertSkuHistoryPurchaserRelationList).ExecuteAffrows();

2
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -1183,7 +1183,7 @@ namespace BBWYB.Server.Business
if (!hySchemeResponse.PurchaserList.Any(p => p.Id == hySchemeProductResponse.PurchaserId))
{
hySchemeResponse.PurchaserList.Add(new Purchaser()
hySchemeResponse.PurchaserList.Add(new PurchaserResponse()
{
Id = hySchemeProductResponse.PurchaserId,
Id2 = hySchemeProductResponse.PurchaserId2,

2
BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs

@ -55,7 +55,7 @@ namespace BBWYB.Server.Model.Dto
/// <summary>
/// 是否包含采购商统计信息 (采购次数/采购SKU数)
/// </summary>
public int? IncludePurchaserStatisticsInfo { get; set; };
public int? IncludePurchaserStatisticsInfo { get; set; }
}
}

Loading…
Cancel
Save