|
|
@ -192,10 +192,9 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
private void SyncJDOrder(JArray orderTokenJArray, long shopId, string relayAPIHost, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) |
|
|
|
{ |
|
|
|
//if (shopId == 10388155)
|
|
|
|
//{
|
|
|
|
// nLogManager.GetLogger("订单同步-布莱特玩具专营店").Info(JsonConvert.SerializeObject(orderTokenJArray));
|
|
|
|
//}
|
|
|
|
var validOrders = orderTokenJArray.Where(o => o.Value<string>("orderState") != "NOT_PAY"); |
|
|
|
if (validOrders.Count() == 0) |
|
|
|
return; |
|
|
|
|
|
|
|
#region 数据库操作
|
|
|
|
List<Order> insertOrderList = new List<Order>(); |
|
|
@ -205,90 +204,13 @@ namespace BBWY.Server.Business |
|
|
|
List<OrderSku> insertOrderSkuList = new List<OrderSku>(); |
|
|
|
List<OrderCoupon> insertOrderCouponList = new List<OrderCoupon>(); |
|
|
|
|
|
|
|
List<GiftOrder> insertGiftOrderList = new List<GiftOrder>(); |
|
|
|
List<GiftOrderSku> insertGiftOrderSkuList = new List<GiftOrderSku>(); |
|
|
|
IList<IUpdate<GiftOrder>> updateGiftOrderList = new List<IUpdate<GiftOrder>>(); |
|
|
|
|
|
|
|
IList<IUpdate<Order>> updateOrderList = new List<IUpdate<Order>>(); |
|
|
|
IList<IUpdate<PurchaseOrder>> updatePurchaseOrderList = new List<IUpdate<PurchaseOrder>>(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 赠品
|
|
|
|
var giftOrderJArray = orderTokenJArray.Where(o => o.Value<decimal>("orderTotalPrice") == 0M); |
|
|
|
if (giftOrderJArray.Count() > 0) |
|
|
|
{ |
|
|
|
var giftOrderIds = giftOrderJArray.Select(orderJToken => orderJToken.Value<string>("orderId")).ToArray(); |
|
|
|
var dbGiftOrderList = fsql.Select<GiftOrder>(giftOrderIds).ToList(); |
|
|
|
var dbGiftOrderIds = dbGiftOrderList.Select(go => go.Id).ToList(); |
|
|
|
|
|
|
|
var exceptIds = giftOrderIds.Except(dbGiftOrderIds); |
|
|
|
if (exceptIds.Count() > 0) |
|
|
|
{ |
|
|
|
var newGiftOrderJArray = giftOrderJArray.Where(o => exceptIds.Contains(o.Value<string>("orderId"))); |
|
|
|
foreach (var orderJToken in newGiftOrderJArray) |
|
|
|
{ |
|
|
|
var orderState = ConvertOrderState(orderJToken); |
|
|
|
if (orderState == Enums.OrderState.待付款 || orderState == Enums.OrderState.已取消) |
|
|
|
continue; |
|
|
|
var orderStartTime = orderJToken.Value<DateTime>("orderStartTime"); |
|
|
|
var modifyTime = orderJToken.Value<DateTime?>("modified"); |
|
|
|
insertGiftOrderList.Add(new GiftOrder() |
|
|
|
{ |
|
|
|
Id = orderJToken.Value<string>("orderId"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
Platform = Enums.Platform.京东, |
|
|
|
ShopId = shopId, |
|
|
|
StartTime = orderStartTime, |
|
|
|
ModifyTime = modifyTime, |
|
|
|
OrderState = orderState |
|
|
|
}); |
|
|
|
|
|
|
|
var itemInfoList = orderJToken["itemInfoList"] as JArray; |
|
|
|
foreach (var orderSkuJToken in itemInfoList) |
|
|
|
{ |
|
|
|
var itemTotal = orderSkuJToken.Value<int>("itemTotal"); |
|
|
|
var jdPrice = orderSkuJToken.Value<decimal>("jdPrice"); |
|
|
|
var wareId = orderSkuJToken.Value<string>("wareId"); |
|
|
|
var skuId = orderSkuJToken.Value<string>("skuId"); |
|
|
|
insertGiftOrderSkuList.Add(new GiftOrderSku() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
GiftOrderId = orderJToken.Value<string>("orderId"), |
|
|
|
ItemTotal = itemTotal, |
|
|
|
Price = jdPrice, |
|
|
|
ProductId = wareId, |
|
|
|
ShopId = shopId, |
|
|
|
SkuId = skuId |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var intersectIds = giftOrderIds.Intersect(dbGiftOrderIds); |
|
|
|
if (intersectIds.Count() > 0) |
|
|
|
{ |
|
|
|
foreach (var intersercId in intersectIds) |
|
|
|
{ |
|
|
|
var orderJToken = giftOrderJArray.FirstOrDefault(o => o.Value<string>("orderId") == intersercId); |
|
|
|
var dbGiftOrder = dbGiftOrderList.FirstOrDefault(o => o.Id == intersercId); |
|
|
|
var orderState = ConvertOrderState(orderJToken); |
|
|
|
if (orderState != null && orderState != dbGiftOrder.OrderState) |
|
|
|
{ |
|
|
|
var modifyTime = orderJToken.Value<DateTime?>("modified"); |
|
|
|
var update = fsql.Update<GiftOrder>(intersercId).Set(go => go.OrderState, orderState) |
|
|
|
.Set(go => go.ModifyTime, modifyTime); |
|
|
|
updateGiftOrderList.Add(update); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
var noGiftOrderList = orderTokenJArray.Where(o => o.Value<decimal>("orderTotalPrice") != 0M); |
|
|
|
|
|
|
|
var interfaceOrderIdList = noGiftOrderList.Select(orderJToken => orderJToken.Value<string>("orderId")); |
|
|
|
var interfaceCanceledOrderIdList = noGiftOrderList.Where(orderJToken => orderJToken.Value<string>("orderState").Equals("TRADE_CANCELED")) |
|
|
|
var interfaceOrderIdList = validOrders.Select(orderJToken => orderJToken.Value<string>("orderId")); |
|
|
|
var interfaceCanceledOrderIdList = validOrders.Where(orderJToken => orderJToken.Value<string>("orderState").Equals("TRADE_CANCELED")) |
|
|
|
.Select(orderJToken => orderJToken.Value<string>("orderId")); //接口查询结果中取消状态的订单Id
|
|
|
|
|
|
|
|
var dbOrderList = fsql.Select<Order>().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order() |
|
|
@ -309,7 +231,7 @@ namespace BBWY.Server.Business |
|
|
|
} |
|
|
|
|
|
|
|
var orderSkuIds = new List<string>(); |
|
|
|
foreach (var orderJToken in noGiftOrderList) |
|
|
|
foreach (var orderJToken in validOrders) |
|
|
|
{ |
|
|
|
var itemInfoList = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value<decimal>("jdPrice") != 0M); |
|
|
|
foreach (var josku in itemInfoList) |
|
|
@ -319,13 +241,13 @@ namespace BBWY.Server.Business |
|
|
|
orderSkuIds.Add(skuId); |
|
|
|
} |
|
|
|
} |
|
|
|
var dbPurchaseOrderList = fsql.Select<PurchaseOrder>().Where(po => po.RemainingQuantity != 0 && orderSkuIds.Contains(po.SkuId)).ToList(); //数据库采购单
|
|
|
|
var dbPurchaseOrderList = fsql.Select<PurchaseOrder>().Where(po => po.ShopId == shopId && po.RemainingQuantity != 0 && orderSkuIds.Contains(po.SkuId)).ToList(); //数据库采购单
|
|
|
|
orderSkuIds.Clear(); |
|
|
|
|
|
|
|
foreach (var orderJToken in noGiftOrderList) |
|
|
|
foreach (var orderJToken in validOrders) |
|
|
|
{ |
|
|
|
var orderId = orderJToken.Value<string>("orderId"); |
|
|
|
if (insertOrderList.Count(o => o.Id == orderId) > 0) |
|
|
|
if (insertOrderList.Any(o => o.Id == orderId)) |
|
|
|
continue; |
|
|
|
var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == orderId); |
|
|
|
var isNewOrder = dbOrder == null; |
|
|
@ -358,7 +280,8 @@ namespace BBWY.Server.Business |
|
|
|
//VenderId = orderJToken.Value<long>("venderId"),
|
|
|
|
WaybillNo = waybillNo, |
|
|
|
StoreOrder = orderJToken.Value<string>("storeOrder") ?? string.Empty, |
|
|
|
StoreId = orderJToken.Value<string>("storeId") |
|
|
|
StoreId = orderJToken.Value<string>("storeId"), |
|
|
|
IsGift = orderJToken.Value<decimal>("orderTotalPrice") == 0M || orderJToken.Value<decimal>("orderSellerPrice") == 0M |
|
|
|
}; |
|
|
|
|
|
|
|
if (memoryCache.TryGetValue(orderId, out sDCalculationCostRequest)) |
|
|
@ -620,6 +543,7 @@ namespace BBWY.Server.Business |
|
|
|
if (isNewOrder) |
|
|
|
{ |
|
|
|
dbOrder.OrderState = orderState; |
|
|
|
//dbOrder.IsGift =
|
|
|
|
} |
|
|
|
else if ((orderState != null && orderState != dbOrder.OrderState) || |
|
|
|
buyerRemark != dbOrder.BuyerRemark || |
|
|
@ -684,8 +608,6 @@ namespace BBWY.Server.Business |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
if (insertOrderList.Count() > 0) |
|
|
@ -701,11 +623,6 @@ namespace BBWY.Server.Business |
|
|
|
if (insertOrderCouponList.Count() > 0) |
|
|
|
fsql.Insert(insertOrderCouponList).ExecuteAffrows(); |
|
|
|
|
|
|
|
if (insertGiftOrderList.Count() > 0) |
|
|
|
fsql.Insert(insertGiftOrderList).ExecuteAffrows(); |
|
|
|
if (insertGiftOrderSkuList.Count() > 0) |
|
|
|
fsql.Insert(insertGiftOrderSkuList).ExecuteAffrows(); |
|
|
|
|
|
|
|
if (updatePurchaseOrderList.Count() > 0) |
|
|
|
{ |
|
|
|
foreach (var update in updatePurchaseOrderList) |
|
|
@ -717,13 +634,6 @@ namespace BBWY.Server.Business |
|
|
|
foreach (var update in updateOrderList) |
|
|
|
update.ExecuteAffrows(); |
|
|
|
} |
|
|
|
|
|
|
|
if (updateGiftOrderList.Count() > 0) |
|
|
|
{ |
|
|
|
foreach (var update in updateGiftOrderList) |
|
|
|
update.ExecuteAffrows(); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
@ -838,7 +748,7 @@ namespace BBWY.Server.Business |
|
|
|
#region 同步暂停订单
|
|
|
|
public void CheckJDPauseOrder(long? shopId) |
|
|
|
{ |
|
|
|
var shopList = venderBusiness.GetShopList(shopId); |
|
|
|
var shopList = venderBusiness.GetShopList(shopId, platform: Enums.Platform.京东); |
|
|
|
var shopIds = shopList.Select(s => long.Parse(s.ShopId)).ToList(); |
|
|
|
|
|
|
|
var deleteRow = fsql.Select<WaitPayOrder>().Where(wo => shopIds.Contains(wo.ShopId.Value)) |
|
|
@ -869,6 +779,11 @@ namespace BBWY.Server.Business |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void DeleteTimeOutWaitPayOrder() |
|
|
|
{ |
|
|
|
var deleteTime = DateTime.Now.AddHours(-24); |
|
|
|
fsql.Delete<WaitPayOrder>().Where(w => w.CreateTime <= deleteTime).ExecuteAffrows(); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
} |
|
|
|