|
@ -9,6 +9,7 @@ using FreeSql; |
|
|
using SDKAdapter; |
|
|
using SDKAdapter; |
|
|
using SDKAdapter.OperationPlatform.Client; |
|
|
using SDKAdapter.OperationPlatform.Client; |
|
|
using SDKAdapter.OperationPlatform.Models; |
|
|
using SDKAdapter.OperationPlatform.Models; |
|
|
|
|
|
using System.Data; |
|
|
using System.Net.Http.Headers; |
|
|
using System.Net.Http.Headers; |
|
|
using Yitter.IdGenerator; |
|
|
using Yitter.IdGenerator; |
|
|
|
|
|
|
|
@ -514,6 +515,9 @@ namespace BBWYB.Server.Business |
|
|
{ |
|
|
{ |
|
|
List<SpuTotalSaleInfo> insertSpuSaleInfoList = new List<SpuTotalSaleInfo>(); |
|
|
List<SpuTotalSaleInfo> insertSpuSaleInfoList = new List<SpuTotalSaleInfo>(); |
|
|
List<SkuTotalSaleInfo> insertSkuSaleInfoList = new List<SkuTotalSaleInfo>(); |
|
|
List<SkuTotalSaleInfo> insertSkuSaleInfoList = new List<SkuTotalSaleInfo>(); |
|
|
|
|
|
List<PurchaseScheme> updatePurchaseSchemeList = new List<PurchaseScheme>(); |
|
|
|
|
|
List<Purchaser> updatePurchaserList = new List<Purchaser>(); |
|
|
|
|
|
List<SkuHistoryPurchaserRelation> insertSkuHistoryPurchaserRelationList = new List<SkuHistoryPurchaserRelation>(); |
|
|
var noOrderStateList = new List<Enums.OrderState?>() |
|
|
var noOrderStateList = new List<Enums.OrderState?>() |
|
|
{ |
|
|
{ |
|
|
Enums.OrderState.已取消, |
|
|
Enums.OrderState.已取消, |
|
@ -584,6 +588,7 @@ namespace BBWYB.Server.Business |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 采购方案累计信息
|
|
|
#region 采购方案累计信息
|
|
|
|
|
|
|
|
|
#region 采购件数
|
|
|
#region 采购件数
|
|
|
/* |
|
|
/* |
|
|
select opi.SchemeId,sum(osku.ItemTotal) from orderpurchaserelationinfo opi |
|
|
select opi.SchemeId,sum(osku.ItemTotal) from orderpurchaserelationinfo opi |
|
@ -604,6 +609,15 @@ namespace BBWYB.Server.Business |
|
|
SchemeId = g.Key, |
|
|
SchemeId = g.Key, |
|
|
ItemTotal = g.Sum(g.Value.Item3.ItemTotal) |
|
|
ItemTotal = g.Sum(g.Value.Item3.ItemTotal) |
|
|
}); |
|
|
}); |
|
|
|
|
|
foreach (var psItemCount in psItemCountGroups) |
|
|
|
|
|
{ |
|
|
|
|
|
updatePurchaseSchemeList.Add(new PurchaseScheme() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = psItemCount.SchemeId.Value, |
|
|
|
|
|
PurchasedItemCount = Convert.ToInt32(psItemCount.ItemTotal), |
|
|
|
|
|
PurchasedAmount = 0M |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
@ -626,14 +640,109 @@ namespace BBWYB.Server.Business |
|
|
SchemeId = g.Key, |
|
|
SchemeId = g.Key, |
|
|
Amount = g.Sum(g.Value.Item3.SkuAmount) |
|
|
Amount = g.Sum(g.Value.Item3.SkuAmount) |
|
|
}); |
|
|
}); |
|
|
|
|
|
foreach (var psAmount in psAmountGroups) |
|
|
|
|
|
{ |
|
|
|
|
|
var ps = updatePurchaseSchemeList.FirstOrDefault(x => x.Id == psAmount.SchemeId); |
|
|
|
|
|
if (ps == null) |
|
|
|
|
|
{ |
|
|
|
|
|
ps = new PurchaseScheme() { Id = psAmount.SchemeId.Value, PurchasedItemCount = 0 }; |
|
|
|
|
|
updatePurchaseSchemeList.Add(ps); |
|
|
|
|
|
} |
|
|
|
|
|
ps.PurchasedAmount = psAmount.Amount; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 采购商累计信息
|
|
|
#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) |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
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 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
|
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
fsql.Transaction(() => |
|
@ -642,12 +751,26 @@ namespace BBWYB.Server.Business |
|
|
fsql.Delete<SkuTotalSaleInfo>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
fsql.Delete<SkuTotalSaleInfo>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
fsql.Delete<SkuOptimizationHistory>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
fsql.Delete<SkuOptimizationHistory>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
fsql.Delete<TimeLimitTask>().Where(t => t.TaskType == Enums.TimeLimitTaskType.待议价任务).ExecuteAffrows(); |
|
|
fsql.Delete<TimeLimitTask>().Where(t => t.TaskType == Enums.TimeLimitTaskType.待议价任务).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<SkuHistoryPurchaserRelation>().Where(s => 1 == 1).ExecuteAffrows(); |
|
|
fsql.Update<OrderSku>().Set(osku => osku.IsNeedOptimization, 0) |
|
|
fsql.Update<OrderSku>().Set(osku => osku.IsNeedOptimization, 0) |
|
|
.Set(osku => osku.IsOptimizationCompleted, 0) |
|
|
.Set(osku => osku.IsOptimizationCompleted, 0) |
|
|
.Where(osku => osku.IsNeedOptimization == 1) |
|
|
.Where(osku => osku.IsNeedOptimization == 1) |
|
|
.ExecuteAffrows(); |
|
|
.ExecuteAffrows(); |
|
|
|
|
|
foreach (var updatePs in updatePurchaseSchemeList) |
|
|
|
|
|
{ |
|
|
|
|
|
fsql.Update<PurchaseScheme>(updatePs.Id).Set(ps => ps.PurchasedItemCount, updatePs.PurchasedItemCount) |
|
|
|
|
|
.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(); |
|
|
|
|
|
} |
|
|
fsql.Insert(insertSpuSaleInfoList).ExecuteAffrows(); |
|
|
fsql.Insert(insertSpuSaleInfoList).ExecuteAffrows(); |
|
|
fsql.Insert(insertSkuSaleInfoList).ExecuteAffrows(); |
|
|
fsql.Insert(insertSkuSaleInfoList).ExecuteAffrows(); |
|
|
|
|
|
fsql.Insert(insertSkuHistoryPurchaserRelationList).ExecuteAffrows(); |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|