|
|
@ -1541,23 +1541,53 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
private void SyncJDRefundOrder(JArray refundOrderTokenJArray, ShopResponse shopResponse) |
|
|
|
{ |
|
|
|
var shopId = long.Parse(shopResponse.ShopId); |
|
|
|
var validRefundOrderTokenJArray = refundOrderTokenJArray.Where(j => j.Value<int>("status") == 13 && j.Value<decimal>("refoundAmount") != 0M).ToList(); |
|
|
|
var orderIds = validRefundOrderTokenJArray.Select(j => j["sameOrderServiceBill"]["orderId"].ToString()).Distinct().ToList(); |
|
|
|
var orderSkuIds = validRefundOrderTokenJArray.Select(j => j["sameOrderServiceBill"]["wareId"].ToString()).Distinct().ToList(); |
|
|
|
|
|
|
|
var dbOrders = fsql.Select<Order>().Where(o => orderIds.Contains(o.Id) && o.IsAfterSaleOrder == false).ToList(); |
|
|
|
var dbOrderSkus = fsql.Select<OrderSku>().Where(osku => orderIds.Contains(osku.OrderId) && |
|
|
|
orderSkuIds.Contains(osku.SkuId) && |
|
|
|
osku.IsRefund == false).ToList(); |
|
|
|
var updateOrders = fsql.Select<Order>().Where(o => orderIds.Contains(o.Id) && o.IsAfterSaleOrder == false).ToList(); |
|
|
|
var updateOrderSkus = fsql.Select<OrderSku>().Where(osku => orderIds.Contains(osku.OrderId) && |
|
|
|
orderSkuIds.Contains(osku.SkuId) && |
|
|
|
osku.IsRefund == false).ToList(); |
|
|
|
|
|
|
|
List<AfterSaleOrder> afterSaleOrders = new List<AfterSaleOrder>(); |
|
|
|
|
|
|
|
foreach (var refundOrderJToken in refundOrderTokenJArray) |
|
|
|
{ |
|
|
|
var skuId = refundOrderJToken["sameOrderServiceBill"]["wareId"].ToString(); |
|
|
|
var orderId = refundOrderJToken["sameOrderServiceBill"]["orderId"].ToString(); |
|
|
|
var updateSku = updateOrderSkus.FirstOrDefault(osku => osku.OrderId == orderId && osku.SkuId == skuId); |
|
|
|
if (updateSku == null) |
|
|
|
continue; |
|
|
|
|
|
|
|
var refundAmount = refundOrderJToken.Value<decimal>("refoundAmount"); |
|
|
|
var refundCompleteTime = refundOrderJToken.Value<long>("completeTime").StampToDateTime(); |
|
|
|
|
|
|
|
|
|
|
|
afterSaleOrders.Add(new AfterSaleOrder() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
OrderId = updateSku.OrderId, |
|
|
|
ProductId = updateSku.ProductId, |
|
|
|
RefundAmount = refundAmount, |
|
|
|
RefundTime = refundCompleteTime, |
|
|
|
SkuId = skuId, |
|
|
|
ShopId = shopId |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
if (dbOrders.Count() > 0) |
|
|
|
foreach (var dbOrder in dbOrders) |
|
|
|
fsql.Update<Order>(dbOrder.Id).Set(o => o.IsAfterSaleOrder, true).ExecuteAffrows(); |
|
|
|
if (dbOrderSkus.Count() > 0) |
|
|
|
foreach (var dbOrderSku in dbOrderSkus) |
|
|
|
fsql.Update<OrderSku>(dbOrderSku.Id).Set(osku => osku.IsRefund, true).ExecuteAffrows(); |
|
|
|
if (updateOrders.Count() > 0) |
|
|
|
foreach (var updateOrder in updateOrders) |
|
|
|
fsql.Update<Order>(updateOrder.Id).Set(o => o.IsAfterSaleOrder, true).ExecuteAffrows(); |
|
|
|
if (updateOrderSkus.Count() > 0) |
|
|
|
foreach (var updateOrderSku in updateOrderSkus) |
|
|
|
fsql.Update<OrderSku>(updateOrderSku.Id).Set(osku => osku.IsRefund, true).ExecuteAffrows(); |
|
|
|
if (afterSaleOrders.Count() > 0) |
|
|
|
fsql.Insert(afterSaleOrders).ExecuteAffrows(); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
@ -1605,10 +1635,11 @@ namespace BBWY.Server.Business |
|
|
|
public void SyncAllShopRefundOrder() |
|
|
|
{ |
|
|
|
var shopList = venderBusiness.GetShopList(); |
|
|
|
foreach (var shop in shopList) |
|
|
|
{ |
|
|
|
Task.Factory.StartNew(() => SyncRefundOrder(shop, string.Empty, isAuto: true), System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncRefundOrderTaskScheduler); |
|
|
|
} |
|
|
|
SyncRefundOrder(shopList.FirstOrDefault(s => s.ShopName == "布莱特玩具专营店"), string.Empty, isAuto: true); |
|
|
|
//foreach (var shop in shopList)
|
|
|
|
//{
|
|
|
|
// Task.Factory.StartNew(() => SyncRefundOrder(shop, string.Empty, isAuto: true), System.Threading.CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncRefundOrderTaskScheduler);
|
|
|
|
//}
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|