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

72
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 qtOrderIdList = qtOrderList.Items.Select(qto => qto.OrderId).ToList();
var dbOrderList = fsql.Select<Model.Db.Order>(qtOrderIdList).ToList(); var dbOrderList = fsql.Select<Model.Db.Order>(qtOrderIdList).ToList();
//采购限时任务列表
var payedQTOrderIdList = qtOrderList.Items.Where(qto => qto.IsPay).Select(qto => qto.OrderId).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. && var dbPurchaseTimeLimitTaskList = fsql.Select<TimeLimitTask>().Where(t => t.TaskType == Enums.TimeLimitTaskType. &&
payedQTOrderIdList.Contains(t.OrderId)).ToList(); 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<Model.Db.Order> insertOrderList = new List<Model.Db.Order>();
List<OrderSku> insertOrderSkuList = new List<OrderSku>(); List<OrderSku> insertOrderSkuList = new List<OrderSku>();
List<OrderConsignee> insertOrderConsigneeList = new List<OrderConsignee>(); List<OrderConsignee> insertOrderConsigneeList = new List<OrderConsignee>();
List<TimeLimitTask> insertTimeLimitTaskList = new List<TimeLimitTask>(); List<TimeLimitTask> insertTimeLimitTaskList = new List<TimeLimitTask>();
List<string> deleteTimeLimitTaskOrderIdList = new List<string>(); List<string> deleteTimeLimitTaskOrderIdList = new List<string>();
List<IUpdate<Model.Db.Order>> updateOrderList = new List<IUpdate<Model.Db.Order>>(); 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) foreach (var qtOrder in qtOrderList.Items)
{ {
var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == qtOrder.OrderId); var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == qtOrder.OrderId);
@ -184,10 +196,10 @@ namespace BBWYB.Server.Business.Sync
ProductId = qtOrderSku.ProductId, ProductId = qtOrderSku.ProductId,
BelongSkuId = belongSkus?.FirstOrDefault(j => j.Value<string>("SkuId") == qtOrderSku.SkuId)?.Value<string>("BelongSkuId") ?? string.Empty, BelongSkuId = belongSkus?.FirstOrDefault(j => j.Value<string>("SkuId") == qtOrderSku.SkuId)?.Value<string>("BelongSkuId") ?? string.Empty,
InPackAmount = qtOrderSku.PackAmount, InPackAmount = qtOrderSku.PackAmount,
BuyerPayFreight = qtOrderSku.FreightAmount BuyerPayFreight = qtOrderSku.FreightAmount,
IsNeedOptimization = 0
}); });
} }
//收货人 //收货人
insertOrderConsigneeList.Add(new OrderConsignee() insertOrderConsigneeList.Add(new OrderConsignee()
{ {
@ -202,19 +214,26 @@ namespace BBWYB.Server.Business.Sync
TelePhone = qtOrder.Consignee.Mobile, TelePhone = qtOrder.Consignee.Mobile,
Town = qtOrder.Consignee.Town Town = qtOrder.Consignee.Town
}); });
if (qtOrder.IsPay && !waitToCheckSkuSaleOrderList.Any(x => x.OrderId == qtOrder.OrderId))
waitToCheckSkuSaleOrderList.Add(qtOrder);
} }
else else
{ {
#region 订单状态脱离拳探 只处理付款和取消 #region 订单状态脱离拳探 只处理付款和取消
Enums.OrderState? updateOrderState = null; Enums.OrderState? updateOrderState = null;
if (orderState == Enums.OrderState. && dbOrder.OrderState!=Enums.OrderState.) if (orderState == Enums.OrderState. && dbOrder.OrderState != Enums.OrderState.)
{ {
//dbOrder.OrderState = Enums.OrderState.待付款; //dbOrder.OrderState = Enums.OrderState.待付款;
updateOrderState = Enums.OrderState.; 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.; updateOrderState = Enums.OrderState.;
if (!waitToCheckSkuSaleOrderList.Any(x => x.OrderId == qtOrder.OrderId))
waitToCheckSkuSaleOrderList.Add(qtOrder);
}
if (dbOrder.OrderState != Enums.OrderState. && orderState == Enums.OrderState.) if (dbOrder.OrderState != Enums.OrderState. && orderState == Enums.OrderState.)
{ {
@ -244,7 +263,46 @@ namespace BBWYB.Server.Business.Sync
updateOrderList.Add(update); 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); CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList);
@ -268,6 +326,8 @@ namespace BBWYB.Server.Business.Sync
if (deleteTimeLimitTaskOrderIdList.Count() > 0) if (deleteTimeLimitTaskOrderIdList.Count() > 0)
fsql.Delete<TimeLimitTask>().Where(t => deleteTimeLimitTaskOrderIdList.Contains(t.OrderId)).ExecuteAffrows(); fsql.Delete<TimeLimitTask>().Where(t => deleteTimeLimitTaskOrderIdList.Contains(t.OrderId)).ExecuteAffrows();
}); });
} }
catch (Exception ex) catch (Exception ex)

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

@ -102,6 +102,12 @@ namespace BBWYB.Server.Model.Db
/// </summary> /// </summary>
[Column(DbType = "bit", IsNullable = true)] [Column(DbType = "bit", IsNullable = true)]
public bool? IsCheck { get; set; } 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; public bool? IsEnabled { get; set; } = false;
/// <summary>
/// 是否需要议价
/// </summary>
public bool? IsNeedOptimization { get; set; } = false;
/// <summary> /// <summary>
/// 销量,销售件数 /// 销量,销售件数
/// </summary> /// </summary>

Loading…
Cancel
Save