shanji 3 years ago
parent
commit
b73e905234
  1. 55
      BBWY.Server.Business/Order/OrderBusiness.cs
  2. 2
      BBWY.Server.Model/Db/Order/AfterSaleOrder.cs

55
BBWY.Server.Business/Order/OrderBusiness.cs

@ -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) &&
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);
//}
}
}
}

2
BBWY.Server.Model/Db/Order/AfterSaleOrder.cs

@ -5,7 +5,7 @@ namespace BBWY.Server.Model.Db
{
[Table(Name = "aftersaleorder", DisableSyncStructure = true)]
public partial class Aftersaleorder {
public partial class AfterSaleOrder {
[Column(IsPrimary = true)]
public long Id { get; set; }

Loading…
Cancel
Save