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

Loading…
Cancel
Save