|
@ -16,6 +16,7 @@ using System.Collections.Concurrent; |
|
|
using System.Collections.Generic; |
|
|
using System.Collections.Generic; |
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
using System.Net.Http; |
|
|
using System.Net.Http; |
|
|
|
|
|
using System.Security.Cryptography; |
|
|
using System.Threading; |
|
|
using System.Threading; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
using Yitter.IdGenerator; |
|
|
using Yitter.IdGenerator; |
|
@ -28,6 +29,8 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
|
private IMemoryCache memoryCache; |
|
|
private IMemoryCache memoryCache; |
|
|
|
|
|
|
|
|
|
|
|
private IList<string> validOrderState; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public OrderSyncBusiness(RestApiService restApiService, |
|
|
public OrderSyncBusiness(RestApiService restApiService, |
|
|
IOptions<GlobalConfig> options, |
|
|
IOptions<GlobalConfig> options, |
|
@ -51,6 +54,10 @@ namespace BBWY.Server.Business |
|
|
{ |
|
|
{ |
|
|
{ Enums.Platform.京东, SyncJDOrder } |
|
|
{ Enums.Platform.京东, SyncJDOrder } |
|
|
}; |
|
|
}; |
|
|
|
|
|
this.validOrderState = new List<string>() |
|
|
|
|
|
{ |
|
|
|
|
|
"WAIT_SELLER_STOCK_OUT","WAIT_GOODS_RECEIVE_CONFIRM","FINISHED_L","LOCKED","TRADE_CANCELED","POP_ORDER_PAUSE","PAUSE" |
|
|
|
|
|
}; |
|
|
} |
|
|
} |
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 手动同步订单
|
|
|
/// 手动同步订单
|
|
@ -125,6 +132,16 @@ namespace BBWY.Server.Business |
|
|
if (orderListResponse.Data == null || orderListResponse.Data.Count == 0) |
|
|
if (orderListResponse.Data == null || orderListResponse.Data.Count == 0) |
|
|
return; |
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (shopId == 10388155) |
|
|
|
|
|
{ |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
nLogManager.GetLogger($"订单同步-{shop.ShopName}").Info(orderListApiResult.Content); |
|
|
|
|
|
} |
|
|
|
|
|
catch { } |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
syncOrderMethodDic[shop.PlatformId](orderListResponse.Data, shopId, relayAPIHost, shop.AppKey, shop.AppSecret, shop.AppToken, shop.PlatformCommissionRatio ?? 0.05M); |
|
|
syncOrderMethodDic[shop.PlatformId](orderListResponse.Data, shopId, relayAPIHost, shop.AppKey, shop.AppSecret, shop.AppToken, shop.PlatformCommissionRatio ?? 0.05M); |
|
|
} |
|
|
} |
|
|
catch (Exception ex) |
|
|
catch (Exception ex) |
|
@ -192,10 +209,9 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
|
private void SyncJDOrder(JArray orderTokenJArray, long shopId, string relayAPIHost, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) |
|
|
private void SyncJDOrder(JArray orderTokenJArray, long shopId, string relayAPIHost, string appKey, string appSecret, string appToken, decimal platformCommissionRatio) |
|
|
{ |
|
|
{ |
|
|
//if (shopId == 10388155)
|
|
|
var validOrders = orderTokenJArray.Where(o => validOrderState.Contains(o.Value<string>("orderState"))); |
|
|
//{
|
|
|
if (validOrders.Count() == 0) |
|
|
// nLogManager.GetLogger("订单同步-布莱特玩具专营店").Info(JsonConvert.SerializeObject(orderTokenJArray));
|
|
|
return; |
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
#region 数据库操作
|
|
|
#region 数据库操作
|
|
|
List<Order> insertOrderList = new List<Order>(); |
|
|
List<Order> insertOrderList = new List<Order>(); |
|
@ -205,97 +221,34 @@ namespace BBWY.Server.Business |
|
|
List<OrderSku> insertOrderSkuList = new List<OrderSku>(); |
|
|
List<OrderSku> insertOrderSkuList = new List<OrderSku>(); |
|
|
List<OrderCoupon> insertOrderCouponList = new List<OrderCoupon>(); |
|
|
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<Order>> updateOrderList = new List<IUpdate<Order>>(); |
|
|
IList<IUpdate<PurchaseOrder>> updatePurchaseOrderList = new List<IUpdate<PurchaseOrder>>(); |
|
|
IList<IUpdate<PurchaseOrder>> updatePurchaseOrderList = new List<IUpdate<PurchaseOrder>>(); |
|
|
#endregion
|
|
|
#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); |
|
|
var interfaceOrderIdList = validOrders.Select(orderJToken => orderJToken.Value<string>("orderId")); |
|
|
if (exceptIds.Count() > 0) |
|
|
var interfaceCanceledOrderIdList = validOrders.Where(orderJToken => orderJToken.Value<string>("orderState").Equals("TRADE_CANCELED")) |
|
|
{ |
|
|
|
|
|
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")) |
|
|
|
|
|
.Select(orderJToken => orderJToken.Value<string>("orderId")); //接口查询结果中取消状态的订单Id
|
|
|
.Select(orderJToken => orderJToken.Value<string>("orderId")); //接口查询结果中取消状态的订单Id
|
|
|
|
|
|
|
|
|
var dbOrderList = fsql.Select<Order>().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order() |
|
|
|
|
|
|
|
|
var dbOrderList = fsql.Select<Order>().Where(o => interfaceOrderIdList.Contains(o.Id)).ToList(o => new Order |
|
|
{ |
|
|
{ |
|
|
Id = o.Id, |
|
|
Id = o.Id, |
|
|
OrderState = o.OrderState, |
|
|
OrderState = o.OrderState, |
|
|
StorageType = o.StorageType |
|
|
StorageType = o.StorageType, |
|
|
|
|
|
BuyerRemark = o.BuyerRemark, |
|
|
|
|
|
VenderRemark = o.VenderRemark, |
|
|
|
|
|
ModifyTime = o.ModifyTime, |
|
|
|
|
|
EndTime = o.EndTime, |
|
|
|
|
|
WaybillNo = o.WaybillNo, |
|
|
|
|
|
FreightPrice = o.FreightPrice, |
|
|
|
|
|
OrderPayment = o.OrderPayment, |
|
|
|
|
|
SellerPreferentialAmount = o.SellerPreferentialAmount, |
|
|
|
|
|
OrderSellerPrice = o.OrderSellerPrice, |
|
|
|
|
|
OrderTotalPrice = o.OrderTotalPrice, |
|
|
|
|
|
StoreOrder = o.StoreOrder, |
|
|
|
|
|
PreferentialAmount = o.PreferentialAmount, |
|
|
|
|
|
StoreId = o.StoreId |
|
|
}); //数据库订单
|
|
|
}); //数据库订单
|
|
|
var dbOrderConsigneeList = fsql.Select<OrderConsignee>().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单收货信息
|
|
|
var dbOrderConsigneeList = fsql.Select<OrderConsignee>().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单收货信息
|
|
|
var dbOrderCostList = fsql.Select<OrderCost>().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单成本信息
|
|
|
var dbOrderCostList = fsql.Select<OrderCost>().Where(oc => interfaceOrderIdList.Contains(oc.OrderId)).ToList(); //数据库订单成本信息
|
|
@ -309,7 +262,7 @@ namespace BBWY.Server.Business |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var orderSkuIds = new List<string>(); |
|
|
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); |
|
|
var itemInfoList = orderJToken["itemInfoList"].Where(skuJToken => skuJToken.Value<decimal>("jdPrice") != 0M); |
|
|
foreach (var josku in itemInfoList) |
|
|
foreach (var josku in itemInfoList) |
|
@ -319,13 +272,13 @@ namespace BBWY.Server.Business |
|
|
orderSkuIds.Add(skuId); |
|
|
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(); |
|
|
orderSkuIds.Clear(); |
|
|
|
|
|
|
|
|
foreach (var orderJToken in noGiftOrderList) |
|
|
foreach (var orderJToken in validOrders) |
|
|
{ |
|
|
{ |
|
|
var orderId = orderJToken.Value<string>("orderId"); |
|
|
var orderId = orderJToken.Value<string>("orderId"); |
|
|
if (insertOrderList.Count(o => o.Id == orderId) > 0) |
|
|
if (insertOrderList.Any(o => o.Id == orderId)) |
|
|
continue; |
|
|
continue; |
|
|
var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == orderId); |
|
|
var dbOrder = dbOrderList.FirstOrDefault(o => o.Id == orderId); |
|
|
var isNewOrder = dbOrder == null; |
|
|
var isNewOrder = dbOrder == null; |
|
@ -337,6 +290,15 @@ namespace BBWY.Server.Business |
|
|
var modifyTime = orderJToken.Value<DateTime?>("modified"); |
|
|
var modifyTime = orderJToken.Value<DateTime?>("modified"); |
|
|
var endTime = orderJToken.Value<DateTime?>("orderEndTime"); |
|
|
var endTime = orderJToken.Value<DateTime?>("orderEndTime"); |
|
|
var waybillNo = orderJToken.Value<string>("waybill"); |
|
|
var waybillNo = orderJToken.Value<string>("waybill"); |
|
|
|
|
|
var freightPrice = orderJToken.Value<decimal>("freightPrice"); |
|
|
|
|
|
var orderPayment = orderJToken.Value<decimal>("orderPayment"); |
|
|
|
|
|
var sellerPreferentialAmount = orderJToken.Value<decimal>("sellerDiscount"); |
|
|
|
|
|
var orderSellerPrice = orderJToken.Value<decimal>("orderSellerPrice"); |
|
|
|
|
|
var orderTotalPrice = orderJToken.Value<decimal>("orderTotalPrice"); |
|
|
|
|
|
var storeOrder = orderJToken.Value<string>("storeOrder") ?? string.Empty; |
|
|
|
|
|
var storeId = orderJToken.Value<string>("storeId"); |
|
|
|
|
|
var storageType = ConvertStoreOrder(storeOrder); |
|
|
|
|
|
var preferentialAmount = 0M; |
|
|
if (dbOrder == null) |
|
|
if (dbOrder == null) |
|
|
{ |
|
|
{ |
|
|
dbOrder = new Order() |
|
|
dbOrder = new Order() |
|
@ -344,21 +306,23 @@ namespace BBWY.Server.Business |
|
|
Id = orderId, |
|
|
Id = orderId, |
|
|
BuyerRemark = buyerRemark, |
|
|
BuyerRemark = buyerRemark, |
|
|
VenderRemark = venderRemark, |
|
|
VenderRemark = venderRemark, |
|
|
FreightPrice = orderJToken.Value<decimal>("freightPrice"), |
|
|
FreightPrice = freightPrice, |
|
|
EndTime = endTime, |
|
|
EndTime = endTime, |
|
|
StartTime = orderJToken.Value<DateTime>("orderStartTime"), |
|
|
StartTime = orderJToken.Value<DateTime>("orderStartTime"), |
|
|
ModifyTime = modifyTime, |
|
|
ModifyTime = modifyTime, |
|
|
OrderPayment = orderJToken.Value<decimal>("orderPayment"), |
|
|
OrderPayment = orderPayment, |
|
|
SellerPreferentialAmount = orderJToken.Value<decimal>("sellerDiscount"), |
|
|
SellerPreferentialAmount = sellerPreferentialAmount, |
|
|
OrderSellerPrice = orderJToken.Value<decimal>("orderSellerPrice"), |
|
|
OrderSellerPrice = orderSellerPrice, |
|
|
OrderTotalPrice = orderJToken.Value<decimal>("orderTotalPrice"), |
|
|
OrderTotalPrice = orderTotalPrice, |
|
|
OrderType = (Enums.OrderType)orderJToken.Value<int>("orderType"), |
|
|
OrderType = (Enums.OrderType)orderJToken.Value<int>("orderType"), |
|
|
Platform = Enums.Platform.京东, |
|
|
Platform = Enums.Platform.京东, |
|
|
ShopId = shopId, |
|
|
ShopId = shopId, |
|
|
//VenderId = orderJToken.Value<long>("venderId"),
|
|
|
//VenderId = orderJToken.Value<long>("venderId"),
|
|
|
WaybillNo = waybillNo, |
|
|
WaybillNo = waybillNo, |
|
|
StoreOrder = orderJToken.Value<string>("storeOrder") ?? string.Empty, |
|
|
StoreOrder = storeOrder, |
|
|
StoreId = orderJToken.Value<string>("storeId") |
|
|
StoreId = storeId, |
|
|
|
|
|
IsGift = orderTotalPrice == 0M || orderSellerPrice == 0M, |
|
|
|
|
|
StorageType = storageType |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
if (memoryCache.TryGetValue(orderId, out sDCalculationCostRequest)) |
|
|
if (memoryCache.TryGetValue(orderId, out sDCalculationCostRequest)) |
|
@ -374,11 +338,6 @@ namespace BBWY.Server.Business |
|
|
dbOrder.SDPayChannel = sDCalculationCostRequest.SDPayChannel; |
|
|
dbOrder.SDPayChannel = sDCalculationCostRequest.SDPayChannel; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (dbOrder.StoreOrder.Contains("京仓")) |
|
|
|
|
|
dbOrder.StorageType = Enums.StorageType.京仓; |
|
|
|
|
|
else if (dbOrder.StoreOrder.Contains("云仓")) |
|
|
|
|
|
dbOrder.StorageType = Enums.StorageType.云仓; |
|
|
|
|
|
|
|
|
|
|
|
var payType = orderJToken.Value<string>("payType"); |
|
|
var payType = orderJToken.Value<string>("payType"); |
|
|
if (payType.Contains("-")) |
|
|
if (payType.Contains("-")) |
|
|
dbOrder.PayType = (Enums.PayType)Convert.ToInt32(payType.Substring(0, 1)); |
|
|
dbOrder.PayType = (Enums.PayType)Convert.ToInt32(payType.Substring(0, 1)); |
|
@ -415,6 +374,11 @@ namespace BBWY.Server.Business |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
if (storageType != null && dbOrder.StorageType != storageType) |
|
|
|
|
|
dbOrder.StorageType = storageType; |
|
|
|
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 收货人信息
|
|
|
#region 收货人信息
|
|
@ -445,7 +409,8 @@ namespace BBWY.Server.Business |
|
|
var couponType = orderCouponJToken.Value<string>("couponType"); |
|
|
var couponType = orderCouponJToken.Value<string>("couponType"); |
|
|
if (string.IsNullOrEmpty(couponType)) |
|
|
if (string.IsNullOrEmpty(couponType)) |
|
|
continue; |
|
|
continue; |
|
|
dbOrder.PreferentialAmount += orderCouponJToken.Value<decimal>("couponPrice"); |
|
|
//dbOrder.PreferentialAmount += orderCouponJToken.Value<decimal>("couponPrice");
|
|
|
|
|
|
preferentialAmount += orderCouponJToken.Value<decimal>("couponPrice"); |
|
|
insertOrderCouponList.Add(new OrderCoupon() |
|
|
insertOrderCouponList.Add(new OrderCoupon() |
|
|
{ |
|
|
{ |
|
|
Id = idGenerator.NewLong(), |
|
|
Id = idGenerator.NewLong(), |
|
@ -492,7 +457,7 @@ namespace BBWY.Server.Business |
|
|
orderState != Enums.OrderState.已取消) |
|
|
orderState != Enums.OrderState.已取消) |
|
|
{ |
|
|
{ |
|
|
var orderCost = dbOrderCostList.FirstOrDefault(oc => oc.OrderId == dbOrder.Id); |
|
|
var orderCost = dbOrderCostList.FirstOrDefault(oc => oc.OrderId == dbOrder.Id); |
|
|
if (orderCost == null) |
|
|
if (orderCost == null && orderTotalPrice > 0M) |
|
|
{ |
|
|
{ |
|
|
if (isNewOrder && dbOrder.StorageType == Enums.StorageType.SD && sDCalculationCostRequest != null) |
|
|
if (isNewOrder && dbOrder.StorageType == Enums.StorageType.SD && sDCalculationCostRequest != null) |
|
|
{ |
|
|
{ |
|
@ -595,19 +560,17 @@ namespace BBWY.Server.Business |
|
|
{ |
|
|
{ |
|
|
OrderId = orderId, |
|
|
OrderId = orderId, |
|
|
PlatformCommissionRatio = platformCommissionRatio, |
|
|
PlatformCommissionRatio = platformCommissionRatio, |
|
|
PreferentialAmount = dbOrder.PreferentialAmount, |
|
|
PreferentialAmount = preferentialAmount, |
|
|
Profit = 0, |
|
|
Profit = 0, |
|
|
PurchaseAmount = orderCostPurchaseAmount, |
|
|
PurchaseAmount = orderCostPurchaseAmount, |
|
|
DeliveryExpressFreight = orderDeliveryExpressFreight, |
|
|
DeliveryExpressFreight = orderDeliveryExpressFreight, |
|
|
CreateTime = DateTime.Now |
|
|
CreateTime = DateTime.Now |
|
|
}; |
|
|
}; |
|
|
|
|
|
if (dbOrder.OrderTotalPrice != 0) |
|
|
orderCost.CalculationOrderProfitAndCost(dbOrder, null); |
|
|
orderCost.CalculationOrderProfitAndCost(dbOrder, null); |
|
|
//orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
|
|
|
else |
|
|
//orderCost.Profit = dbOrder.OrderSellerPrice +
|
|
|
orderCost.CalculationOrderProfitAndCost(orderSellerPrice, freightPrice, null); |
|
|
// dbOrder.FreightPrice -
|
|
|
|
|
|
// orderCost.PurchaseAmount -
|
|
|
|
|
|
// orderCost.DeliveryExpressFreight -
|
|
|
|
|
|
// orderCost.PlatformCommissionAmount;
|
|
|
|
|
|
insertOrderCostList.Add(orderCost); |
|
|
insertOrderCostList.Add(orderCost); |
|
|
#endregion
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
@ -626,14 +589,32 @@ namespace BBWY.Server.Business |
|
|
venderRemark != dbOrder.VenderRemark || |
|
|
venderRemark != dbOrder.VenderRemark || |
|
|
modifyTime != dbOrder.ModifyTime || |
|
|
modifyTime != dbOrder.ModifyTime || |
|
|
endTime != dbOrder.EndTime || |
|
|
endTime != dbOrder.EndTime || |
|
|
waybillNo != dbOrder.WaybillNo) |
|
|
waybillNo != dbOrder.WaybillNo || |
|
|
|
|
|
freightPrice != dbOrder.FreightPrice || |
|
|
|
|
|
orderPayment != dbOrder.OrderPayment || |
|
|
|
|
|
sellerPreferentialAmount != dbOrder.SellerPreferentialAmount || |
|
|
|
|
|
orderSellerPrice != dbOrder.OrderSellerPrice || |
|
|
|
|
|
orderTotalPrice != dbOrder.OrderTotalPrice || |
|
|
|
|
|
storeOrder != dbOrder.StoreOrder || |
|
|
|
|
|
preferentialAmount != dbOrder.PreferentialAmount || |
|
|
|
|
|
storeId != dbOrder.StoreId) |
|
|
{ |
|
|
{ |
|
|
var updateSql = fsql.Update<Order>(orderId).SetIf(orderState != null && orderState != dbOrder.OrderState, o => o.OrderState, orderState) |
|
|
var updateSql = fsql.Update<Order>(orderId).SetIf(orderState != null && orderState != dbOrder.OrderState, o => o.OrderState, orderState) |
|
|
.SetIf(buyerRemark != dbOrder.BuyerRemark, o => o.BuyerRemark, buyerRemark) |
|
|
.SetIf(buyerRemark != dbOrder.BuyerRemark, o => o.BuyerRemark, buyerRemark) |
|
|
.SetIf(venderRemark != dbOrder.VenderRemark, o => o.VenderRemark, venderRemark) |
|
|
.SetIf(venderRemark != dbOrder.VenderRemark, o => o.VenderRemark, venderRemark) |
|
|
.SetIf(modifyTime != dbOrder.ModifyTime, o => o.ModifyTime, modifyTime) |
|
|
.SetIf(modifyTime != dbOrder.ModifyTime, o => o.ModifyTime, modifyTime) |
|
|
.SetIf(endTime != dbOrder.EndTime, o => o.EndTime, modifyTime) |
|
|
.SetIf(endTime != dbOrder.EndTime, o => o.EndTime, modifyTime) |
|
|
.SetIf(waybillNo != dbOrder.WaybillNo, o => o.WaybillNo, waybillNo); |
|
|
.SetIf(waybillNo != dbOrder.WaybillNo, o => o.WaybillNo, waybillNo) |
|
|
|
|
|
.SetIf(freightPrice != dbOrder.FreightPrice, o => o.FreightPrice, freightPrice) |
|
|
|
|
|
.SetIf(orderPayment != dbOrder.OrderPayment, o => o.OrderPayment, orderPayment) |
|
|
|
|
|
.SetIf(sellerPreferentialAmount != dbOrder.SellerPreferentialAmount, o => o.SellerPreferentialAmount, sellerPreferentialAmount) |
|
|
|
|
|
.SetIf(orderSellerPrice != dbOrder.OrderSellerPrice, o => o.OrderSellerPrice, orderSellerPrice) |
|
|
|
|
|
.SetIf(orderTotalPrice != dbOrder.OrderTotalPrice, o => o.OrderTotalPrice, orderTotalPrice) |
|
|
|
|
|
.SetIf(orderTotalPrice != dbOrder.OrderTotalPrice && orderTotalPrice > 0M, o => o.IsGift, false) |
|
|
|
|
|
.SetIf(storeOrder != dbOrder.StoreOrder, o => o.StoreOrder, storeOrder) |
|
|
|
|
|
.SetIf(storeOrder != dbOrder.StoreOrder, o => o.StorageType, storageType) |
|
|
|
|
|
.SetIf(preferentialAmount != dbOrder.PreferentialAmount, o => o.PreferentialAmount, preferentialAmount) |
|
|
|
|
|
.SetIf(storeId != dbOrder.StoreId, o => o.StoreId, storeId); |
|
|
updateOrderList.Add(updateSql); |
|
|
updateOrderList.Add(updateSql); |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
@ -684,8 +665,6 @@ namespace BBWY.Server.Business |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
fsql.Transaction(() => |
|
|
{ |
|
|
{ |
|
|
if (insertOrderList.Count() > 0) |
|
|
if (insertOrderList.Count() > 0) |
|
@ -701,11 +680,6 @@ namespace BBWY.Server.Business |
|
|
if (insertOrderCouponList.Count() > 0) |
|
|
if (insertOrderCouponList.Count() > 0) |
|
|
fsql.Insert(insertOrderCouponList).ExecuteAffrows(); |
|
|
fsql.Insert(insertOrderCouponList).ExecuteAffrows(); |
|
|
|
|
|
|
|
|
if (insertGiftOrderList.Count() > 0) |
|
|
|
|
|
fsql.Insert(insertGiftOrderList).ExecuteAffrows(); |
|
|
|
|
|
if (insertGiftOrderSkuList.Count() > 0) |
|
|
|
|
|
fsql.Insert(insertGiftOrderSkuList).ExecuteAffrows(); |
|
|
|
|
|
|
|
|
|
|
|
if (updatePurchaseOrderList.Count() > 0) |
|
|
if (updatePurchaseOrderList.Count() > 0) |
|
|
{ |
|
|
{ |
|
|
foreach (var update in updatePurchaseOrderList) |
|
|
foreach (var update in updatePurchaseOrderList) |
|
@ -717,14 +691,18 @@ namespace BBWY.Server.Business |
|
|
foreach (var update in updateOrderList) |
|
|
foreach (var update in updateOrderList) |
|
|
update.ExecuteAffrows(); |
|
|
update.ExecuteAffrows(); |
|
|
} |
|
|
} |
|
|
|
|
|
}); |
|
|
if (updateGiftOrderList.Count() > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (var update in updateGiftOrderList) |
|
|
|
|
|
update.ExecuteAffrows(); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
}); |
|
|
private Enums.StorageType? ConvertStoreOrder(string storeOrder) |
|
|
|
|
|
{ |
|
|
|
|
|
if (string.IsNullOrEmpty(storeOrder)) |
|
|
|
|
|
return null; |
|
|
|
|
|
if (storeOrder.Contains("京仓")) |
|
|
|
|
|
return Enums.StorageType.京仓; |
|
|
|
|
|
else if (storeOrder.Contains("云仓")) |
|
|
|
|
|
return Enums.StorageType.云仓; |
|
|
|
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
@ -809,6 +787,20 @@ namespace BBWY.Server.Business |
|
|
return orderState; |
|
|
return orderState; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void OrderDelete(long ShopId, IList<string> orderIds) |
|
|
|
|
|
{ |
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
|
|
{ |
|
|
|
|
|
fsql.Delete<Order>().Where(o => o.ShopId == ShopId && orderIds.Contains(o.Id)).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderSku>().Where(osku => orderIds.Contains(osku.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderCostDetail>().Where(ocd => orderIds.Contains(ocd.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderCost>().Where(oc => orderIds.Contains(oc.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderDropShipping>().Where(ods => orderIds.Contains(ods.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderConsignee>().Where(ocs => orderIds.Contains(ocs.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderCoupon>().Where(oc => orderIds.Contains(oc.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
/// 接收订单推送
|
|
|
/// 接收订单推送
|
|
|
/// </summary>
|
|
|
/// </summary>
|
|
@ -838,7 +830,7 @@ namespace BBWY.Server.Business |
|
|
#region 同步暂停订单
|
|
|
#region 同步暂停订单
|
|
|
public void CheckJDPauseOrder(long? shopId) |
|
|
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 shopIds = shopList.Select(s => long.Parse(s.ShopId)).ToList(); |
|
|
|
|
|
|
|
|
var deleteRow = fsql.Select<WaitPayOrder>().Where(wo => shopIds.Contains(wo.ShopId.Value)) |
|
|
var deleteRow = fsql.Select<WaitPayOrder>().Where(wo => shopIds.Contains(wo.ShopId.Value)) |
|
@ -869,6 +861,11 @@ namespace BBWY.Server.Business |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void DeleteTimeOutWaitPayOrder() |
|
|
|
|
|
{ |
|
|
|
|
|
var deleteTime = DateTime.Now.AddHours(-24); |
|
|
|
|
|
fsql.Delete<WaitPayOrder>().Where(w => w.CreateTime <= deleteTime).ExecuteAffrows(); |
|
|
|
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|