shanji 2 years ago
parent
commit
c9ebced198
  1. 70
      BBWYB.Server.Business/Sync/OrderSyncBusiness.cs
  2. 6
      BBWYB.Server.Model/Db/Order/OrderSku.cs
  3. 6
      BBWYB.Server.Model/Db/Product/Skutotalsaleinfo.cs

70
BBWYB.Server.Business/Sync/OrderSyncBusiness.cs

@ -90,21 +90,33 @@ namespace BBWYB.Server.Business.Sync
var qtOrderIdList = qtOrderList.Items.Select(qto => qto.OrderId).ToList();
var dbOrderList = fsql.Select<Model.Db.Order>(qtOrderIdList).ToList();
//采购限时任务列表
var payedQTOrderIdList = qtOrderList.Items.Where(qto => qto.IsPay).Select(qto => qto.OrderId).ToList();
var payedQTSpuIdList = qtOrderList.Items.Where(qto => qto.IsPay).SelectMany(qto => qto.OrderSkuList).Select(qtos => qtos.ProductId).Distinct().ToList();
//限时任务列表
var dbPurchaseTimeLimitTaskList = fsql.Select<TimeLimitTask>().Where(t => t.TaskType == Enums.TimeLimitTaskType. &&
payedQTOrderIdList.Contains(t.OrderId)).ToList();
//现有sku销量
var dbSkuTotalSakeInfoList = fsql.Select<SkuTotalSaleInfo>().Where(s => s.ShopId == shopId && s.IsEnabled == true && payedQTSpuIdList.Contains(s.ProductId)).ToList();
#region DB Operation
List<Model.Db.Order> insertOrderList = new List<Model.Db.Order>();
List<OrderSku> insertOrderSkuList = new List<OrderSku>();
List<OrderConsignee> insertOrderConsigneeList = new List<OrderConsignee>();
List<TimeLimitTask> insertTimeLimitTaskList = new List<TimeLimitTask>();
List<string> deleteTimeLimitTaskOrderIdList = new List<string>();
List<IUpdate<Model.Db.Order>> updateOrderList = new List<IUpdate<Model.Db.Order>>();
List<SkuTotalSaleInfo> insertSkuTotalSaleInfoList = new List<SkuTotalSaleInfo>();
IList<SkuTotalSaleInfo> updateSkuTotalSaleInfoList = new List<SkuTotalSaleInfo>();
#endregion
//等待检查sku销量的订单集合
List<OP_OrderResponse> waitToCheckSkuSaleOrderList = new List<OP_OrderResponse>();
#region 同步订单
foreach (var qtOrder in qtOrderList.Items)
{
var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == qtOrder.OrderId);
@ -184,10 +196,10 @@ namespace BBWYB.Server.Business.Sync
ProductId = qtOrderSku.ProductId,
BelongSkuId = belongSkus?.FirstOrDefault(j => j.Value<string>("SkuId") == qtOrderSku.SkuId)?.Value<string>("BelongSkuId") ?? string.Empty,
InPackAmount = qtOrderSku.PackAmount,
BuyerPayFreight = qtOrderSku.FreightAmount
BuyerPayFreight = qtOrderSku.FreightAmount,
IsNeedOptimization = 0
});
}
//收货人
insertOrderConsigneeList.Add(new OrderConsignee()
{
@ -202,6 +214,9 @@ namespace BBWYB.Server.Business.Sync
TelePhone = qtOrder.Consignee.Mobile,
Town = qtOrder.Consignee.Town
});
if (qtOrder.IsPay && !waitToCheckSkuSaleOrderList.Any(x => x.OrderId == qtOrder.OrderId))
waitToCheckSkuSaleOrderList.Add(qtOrder);
}
else
{
@ -213,8 +228,12 @@ namespace BBWYB.Server.Business.Sync
updateOrderState = Enums.OrderState.;
}
if (dbOrder.OrderState == Enums.OrderState. && orderState != Enums.OrderState.)
if (dbOrder.OrderState == Enums.OrderState. && orderState != Enums.OrderState. && orderState != Enums.OrderState.)
{
updateOrderState = Enums.OrderState.;
if (!waitToCheckSkuSaleOrderList.Any(x => x.OrderId == qtOrder.OrderId))
waitToCheckSkuSaleOrderList.Add(qtOrder);
}
if (dbOrder.OrderState != Enums.OrderState. && orderState == Enums.OrderState.)
{
@ -244,7 +263,46 @@ namespace BBWYB.Server.Business.Sync
updateOrderList.Add(update);
}
}
if (!qtOrder.IsPay)
continue;
}
#endregion
#region 统计sku销量
foreach (var qtOrder in waitToCheckSkuSaleOrderList)
{
foreach (var qtOrderSku in qtOrder.OrderSkuList)
{
var skuTotalSaleInfo = dbSkuTotalSakeInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId);
if (skuTotalSaleInfo == null)
{
skuTotalSaleInfo = insertSkuTotalSaleInfoList.FirstOrDefault(s => s.SkuId == qtOrderSku.SkuId);
if (skuTotalSaleInfo == null)
{
skuTotalSaleInfo = new SkuTotalSaleInfo()
{
SkuId = qtOrderSku.SkuId,
CreateTime = DateTime.Now,
IsEnabled = true,
ItemCount = 0,
LastOptimizationItemCount = 0,
LastOptimizationTime = null,
ProductId = qtOrderSku.ProductId,
ShopId = shopId,
UpdateTime = DateTime.Now
};
insertSkuTotalSaleInfoList.Add(skuTotalSaleInfo);
}
}
else if (!updateSkuTotalSaleInfoList.Any(s => s.SkuId == qtOrderSku.SkuId))
{
updateSkuTotalSaleInfoList.Add(skuTotalSaleInfo);
}
skuTotalSaleInfo.ItemCount += qtOrderSku.Quantity;
}
}
#endregion
CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList);
@ -268,6 +326,8 @@ namespace BBWYB.Server.Business.Sync
if (deleteTimeLimitTaskOrderIdList.Count() > 0)
fsql.Delete<TimeLimitTask>().Where(t => deleteTimeLimitTaskOrderIdList.Contains(t.OrderId)).ExecuteAffrows();
});
}
catch (Exception ex)

6
BBWYB.Server.Model/Db/Order/OrderSku.cs

@ -102,6 +102,12 @@ namespace BBWYB.Server.Model.Db
/// </summary>
[Column(DbType = "bit", IsNullable = true)]
public bool? IsCheck { get; set; }
/// <summary>
/// 是否需要议价 是=1 否=0
/// </summary>
[Column(DbType = "int(1)", IsNullable = true)]
public int? IsNeedOptimization { get; set; } = 0;
}
}

6
BBWYB.Server.Model/Db/Product/Skutotalsaleinfo.cs

@ -33,12 +33,6 @@ namespace BBWYB.Server.Model.Db
public bool? IsEnabled { get; set; } = false;
/// <summary>
/// 是否需要议价
/// </summary>
public bool? IsNeedOptimization { get; set; } = false;
/// <summary>
/// 销量,销售件数
/// </summary>

Loading…
Cancel
Save