|
@ -74,12 +74,19 @@ 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 dbPurchaseTimeLimitTaskList = fsql.Select<TimeLimitTask>().Where(t => t.TaskType == Enums.TimeLimitTaskType.采购任务 && |
|
|
|
|
|
payedQTOrderIdList.Contains(t.OrderId)).ToList(); |
|
|
|
|
|
|
|
|
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<IUpdate<Model.Db.Order>> updateOrderList = new List<IUpdate<Model.Db.Order>>(); |
|
|
List<IUpdate<Model.Db.Order>> updateOrderList = new List<IUpdate<Model.Db.Order>>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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); |
|
@ -113,7 +120,8 @@ namespace BBWYB.Server.Business.Sync |
|
|
OrderState = orderState, |
|
|
OrderState = orderState, |
|
|
ClientOrderId = qtOrder.ClientOrderId, |
|
|
ClientOrderId = qtOrder.ClientOrderId, |
|
|
BuyerAccount = qtOrder.UserAccount, |
|
|
BuyerAccount = qtOrder.UserAccount, |
|
|
InPackAmount = qtOrder.PackAmount |
|
|
InPackAmount = qtOrder.PackAmount, |
|
|
|
|
|
PayTime = qtOrder.PayTime, |
|
|
}; |
|
|
}; |
|
|
JArray belongSkus = null; |
|
|
JArray belongSkus = null; |
|
|
if (!string.IsNullOrEmpty(qtOrder.Extended)) |
|
|
if (!string.IsNullOrEmpty(qtOrder.Extended)) |
|
@ -178,14 +186,8 @@ namespace BBWYB.Server.Business.Sync |
|
|
} |
|
|
} |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
Enums.OrderState? updateOrderState = null; |
|
|
|
|
|
var updateModifyTime = false; |
|
|
|
|
|
var updateBuyerRemark = false; |
|
|
|
|
|
var updateVenderRemark = false; |
|
|
|
|
|
var updateBuyerAccount = false; |
|
|
|
|
|
var updateOrderSn = false; |
|
|
|
|
|
|
|
|
|
|
|
#region 订单状态脱离拳探 只处理付款和取消
|
|
|
#region 订单状态脱离拳探 只处理付款和取消
|
|
|
|
|
|
Enums.OrderState? updateOrderState = null; |
|
|
if (dbOrder.OrderState == Enums.OrderState.待付款 && orderState != Enums.OrderState.待付款) |
|
|
if (dbOrder.OrderState == Enums.OrderState.待付款 && orderState != Enums.OrderState.待付款) |
|
|
updateOrderState = Enums.OrderState.等待采购; |
|
|
updateOrderState = Enums.OrderState.等待采购; |
|
|
|
|
|
|
|
@ -193,30 +195,29 @@ namespace BBWYB.Server.Business.Sync |
|
|
updateOrderState = Enums.OrderState.已取消; |
|
|
updateOrderState = Enums.OrderState.已取消; |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
if (dbOrder.ModifyTime != qtOrder.ModifyTime) |
|
|
var updateModifyTime = dbOrder.ModifyTime != qtOrder.ModifyTime; |
|
|
updateModifyTime = true; |
|
|
var updateBuyerRemark = dbOrder.BuyerRemark != qtOrder.BuyerRemark; |
|
|
if (dbOrder.BuyerRemark != qtOrder.BuyerRemark) |
|
|
var updateVenderRemark = dbOrder.VenderRemark != qtOrder.VenderRemark; |
|
|
updateBuyerRemark = true; |
|
|
var updateBuyerAccount = dbOrder.BuyerAccount != qtOrder.UserAccount; |
|
|
if (dbOrder.VenderRemark != qtOrder.VenderRemark) |
|
|
var updateOrderSn = dbOrder.OrderSn != qtOrder.OrderSn; |
|
|
updateVenderRemark = true; |
|
|
var updatePayTime = dbOrder.PayTime != qtOrder.PayTime; |
|
|
if (dbOrder.BuyerAccount != qtOrder.UserAccount) |
|
|
|
|
|
updateBuyerAccount = true; |
|
|
if (updateOrderState != null || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount || updateOrderSn || updatePayTime) |
|
|
if (dbOrder.OrderSn != qtOrder.OrderSn) |
|
|
|
|
|
updateOrderSn = true; |
|
|
|
|
|
|
|
|
|
|
|
if (updateOrderState != null || updateModifyTime || updateBuyerRemark || updateVenderRemark || updateBuyerAccount || updateOrderSn) |
|
|
|
|
|
{ |
|
|
{ |
|
|
var update = fsql.Update<Model.Db.Order>(dbOrder.Id).SetIf(updateOrderState != null, o => o.OrderState, orderState) |
|
|
var update = fsql.Update<Model.Db.Order>(dbOrder.Id).SetIf(updateOrderState != null, o => o.OrderState, updateOrderState) |
|
|
.SetIf(updateModifyTime, o => o.ModifyTime, qtOrder.ModifyTime) |
|
|
.SetIf(updateModifyTime, o => o.ModifyTime, qtOrder.ModifyTime) |
|
|
.SetIf(updateBuyerRemark, o => o.BuyerRemark, qtOrder.BuyerRemark) |
|
|
.SetIf(updateBuyerRemark, o => o.BuyerRemark, qtOrder.BuyerRemark) |
|
|
.SetIf(updateVenderRemark, o => o.VenderRemark, qtOrder.VenderRemark) |
|
|
.SetIf(updateVenderRemark, o => o.VenderRemark, qtOrder.VenderRemark) |
|
|
.SetIf(updateBuyerAccount, o => o.BuyerAccount, qtOrder.UserAccount) |
|
|
.SetIf(updateBuyerAccount, o => o.BuyerAccount, qtOrder.UserAccount) |
|
|
.SetIf(updateOrderSn, o => o.OrderSn, qtOrder.OrderSn); |
|
|
.SetIf(updateOrderSn, o => o.OrderSn, qtOrder.OrderSn) |
|
|
|
|
|
.SetIf(updatePayTime, o => o.PayTime, qtOrder.PayTime); |
|
|
updateOrderList.Add(update); |
|
|
updateOrderList.Add(update); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
CheckPurchaseTimeLimitTask(shopId, qtOrderList.Items, dbPurchaseTimeLimitTaskList, insertTimeLimitTaskList); |
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
fsql.Transaction(() => |
|
|
{ |
|
|
{ |
|
|
if (insertOrderList.Count > 0) |
|
|
if (insertOrderList.Count > 0) |
|
@ -228,6 +229,9 @@ namespace BBWYB.Server.Business.Sync |
|
|
if (insertOrderConsigneeList.Count() > 0) |
|
|
if (insertOrderConsigneeList.Count() > 0) |
|
|
fsql.Insert(insertOrderConsigneeList).ExecuteAffrows(); |
|
|
fsql.Insert(insertOrderConsigneeList).ExecuteAffrows(); |
|
|
|
|
|
|
|
|
|
|
|
if (insertTimeLimitTaskList.Count() > 0) |
|
|
|
|
|
fsql.Insert(insertTimeLimitTaskList).ExecuteAffrows(); |
|
|
|
|
|
|
|
|
if (updateOrderList.Count() > 0) |
|
|
if (updateOrderList.Count() > 0) |
|
|
foreach (var update in updateOrderList) |
|
|
foreach (var update in updateOrderList) |
|
|
update.ExecuteAffrows(); |
|
|
update.ExecuteAffrows(); |
|
@ -239,6 +243,54 @@ namespace BBWYB.Server.Business.Sync |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void CheckPurchaseTimeLimitTask(long shopId, IList<OP_OrderResponse> orderList, IList<TimeLimitTask> dbTimeLimits, List<TimeLimitTask> insertTimeLimitTasks) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (var order in orderList) |
|
|
|
|
|
{ |
|
|
|
|
|
if (!order.IsPay || order.PayTime == null) |
|
|
|
|
|
continue; |
|
|
|
|
|
var waitInserTimeLimitTasks = order.OrderSkuList.Where(osku => !dbTimeLimits.Any(x => x.OrderId == order.OrderId && x.SkuId == osku.SkuId)) |
|
|
|
|
|
.Select(osku => new TimeLimitTask() |
|
|
|
|
|
{ |
|
|
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
|
|
CreateTme = DateTime.Now, |
|
|
|
|
|
OrderId = order.OrderId, |
|
|
|
|
|
SkuId = osku.SkuId, |
|
|
|
|
|
TaskType = Enums.TimeLimitTaskType.采购任务, |
|
|
|
|
|
ShopId = shopId, |
|
|
|
|
|
ExpirationTime = CalculationPurcashTimeLimitTaskExpirationTime(order.PayTime.Value), |
|
|
|
|
|
PayTime = order.PayTime |
|
|
|
|
|
}).ToList(); |
|
|
|
|
|
if (waitInserTimeLimitTasks != null && waitInserTimeLimitTasks.Count() > 0) |
|
|
|
|
|
insertTimeLimitTasks.AddRange(waitInserTimeLimitTasks); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 计算采购限时任务的到期时间
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="payTime">付款时间</param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
private DateTime CalculationPurcashTimeLimitTaskExpirationTime(DateTime payTime) |
|
|
|
|
|
{ |
|
|
|
|
|
var addDays = 0; |
|
|
|
|
|
if (payTime.DayOfWeek == DayOfWeek.Sunday || |
|
|
|
|
|
payTime.DayOfWeek == DayOfWeek.Monday || |
|
|
|
|
|
payTime.DayOfWeek == DayOfWeek.Tuesday || |
|
|
|
|
|
payTime.DayOfWeek == DayOfWeek.Wednesday || |
|
|
|
|
|
payTime.DayOfWeek == DayOfWeek.Thursday || |
|
|
|
|
|
payTime.DayOfWeek == DayOfWeek.Friday) |
|
|
|
|
|
{ |
|
|
|
|
|
if (payTime.Hour >= 0 && payTime.Hour < 15) |
|
|
|
|
|
addDays = 0; //当日
|
|
|
|
|
|
else |
|
|
|
|
|
addDays = payTime.DayOfWeek == DayOfWeek.Friday ? 2 : 1; //次日,星期五是后天
|
|
|
|
|
|
} |
|
|
|
|
|
else if (payTime.DayOfWeek == DayOfWeek.Saturday) |
|
|
|
|
|
addDays = 1; |
|
|
|
|
|
return payTime.Date.AddDays(addDays).AddHours(16); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private Enums.OrderState? ConvertQuanTanOrderState(string qtOrderState, bool isPay, bool isPurchased) |
|
|
private Enums.OrderState? ConvertQuanTanOrderState(string qtOrderState, bool isPay, bool isPurchased) |
|
|
{ |
|
|
{ |
|
|
/* |
|
|
/* |
|
|