shanji 3 years ago
parent
commit
edaa4ca760
  1. 33
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs

33
BBWY.Server.Business/Sync/OrderSyncBusiness.cs

@ -183,7 +183,7 @@ namespace BBWY.Server.Business
IList<IUpdate<PurchaseOrder>> updatePurchaseOrderList = new List<IUpdate<PurchaseOrder>>();
IList<IUpdate<SkuDailySalesDetail>> updateSkuDailySalesDetailList = new List<IUpdate<SkuDailySalesDetail>>();
ConcurrentDictionary<DateTime, List<SkuDailySalesDetail>> skuDailySalesDetailDictionary = new ConcurrentDictionary<DateTime, List<SkuDailySalesDetail>>();
Dictionary<DateTime, List<SkuDailySalesDetail>> skuDailySalesDetailDictionary = new Dictionary<DateTime, List<SkuDailySalesDetail>>();
#endregion
#region 赠品
@ -684,9 +684,10 @@ namespace BBWY.Server.Business
{
var skuDailySalesDetailList = skuDailySalesDetailDictionary[date];
var skuDailySalesDetailIds = skuDailySalesDetailList.Select(s => s.Sku).ToList();
var dbSkuDailySalesDetailIds = fsql.Select<SkuDailySalesDetail>().Where(s => s.ShopId == shopId &&
s.Date == date &&
skuDailySalesDetailIds.Contains(s.Sku)).ToList(s => s.Sku);
var dbSkuDailySalesDetailList = fsql.Select<SkuDailySalesDetail>().Where(s => s.ShopId == shopId &&
s.Date == date &&
skuDailySalesDetailIds.Contains(s.Sku)).ToList();
var dbSkuDailySalesDetailIds = dbSkuDailySalesDetailList.Select(s => s.Sku);
var exceptIds = skuDailySalesDetailIds.Except(dbSkuDailySalesDetailIds).ToList();
if (exceptIds.Count() > 0)
{
@ -702,14 +703,14 @@ namespace BBWY.Server.Business
var intersectIds = skuDailySalesDetailIds.Intersect(dbSkuDailySalesDetailIds).ToList();
if (intersectIds.Count() > 0)
{
var updateList = skuDailySalesDetailList.Where(s => intersectIds.Contains(s.Sku));
foreach (var s in updateList)
foreach (var intersectId in intersectIds)
{
var iupdate = fsql.Update<SkuDailySalesDetail>().Set(ds => ds.Amount + s.Amount)
.Set(ds => ds.OrderCount + s.OrderCount)
.Set(ds => ds.ItemTotal + s.ItemTotal)
.Where(ds => ds.ShopId == shopId && ds.Date == s.Date && ds.Sku == s.Sku);
updateSkuDailySalesDetailList.Add(iupdate);
var skudaily = skuDailySalesDetailList.FirstOrDefault(s => s.Sku == intersectId);
var dbSkudaily = dbSkuDailySalesDetailList.FirstOrDefault(s => s.Sku == intersectId);
var update = fsql.Update<SkuDailySalesDetail>(dbSkudaily.Id).Set(ds => ds.Amount + skudaily.Amount)
.Set(ds => ds.OrderCount + skudaily.OrderCount)
.Set(ds => ds.ItemTotal + skudaily.ItemTotal);
updateSkuDailySalesDetailList.Add(update);
}
}
}
@ -748,9 +749,9 @@ namespace BBWY.Server.Business
update.ExecuteAffrows();
}
//if (updateSkuDailySalesDetailList.Count > 0)
// foreach (var update in updateSkuDailySalesDetailList)
// update.ExecuteAffrows();
if (updateSkuDailySalesDetailList.Count > 0)
foreach (var update in updateSkuDailySalesDetailList)
update.ExecuteAffrows();
});
}
@ -776,7 +777,7 @@ namespace BBWY.Server.Business
/// <param name="spuId"></param>
/// <param name="price"></param>
/// <param name="itemTotal"></param>
private void CumulativeSkuDailySalesDetail(ConcurrentDictionary<DateTime, List<SkuDailySalesDetail>> skuDailySalesDetailDictionary,
private void CumulativeSkuDailySalesDetail(Dictionary<DateTime, List<SkuDailySalesDetail>> skuDailySalesDetailDictionary,
DateTime orderStartTime,
long shopId,
string skuId,
@ -788,7 +789,7 @@ namespace BBWY.Server.Business
if (!skuDailySalesDetailDictionary.TryGetValue(startDate, out List<SkuDailySalesDetail> skuDailySalesDetailList))
{
skuDailySalesDetailList = new List<SkuDailySalesDetail>();
skuDailySalesDetailDictionary.TryAdd(startDate, skuDailySalesDetailList);
skuDailySalesDetailDictionary.Add(startDate, skuDailySalesDetailList);
}
var skuDailySalesDetail = skuDailySalesDetailList.FirstOrDefault(s => s.Sku == skuId);
if (skuDailySalesDetail == null)

Loading…
Cancel
Save