|
|
@ -261,6 +261,8 @@ namespace BBWY.Server.Business |
|
|
|
//var dbOrderCouponNewList = fsql.Select<OrderCoupon_New>().Where(ocn => interfaceOrderIdList.Contains(ocn.OrderId)).ToList();
|
|
|
|
//var dbOrderPromotionList = fsql.Select<OrderPromotion>().Where(op => interfaceOrderIdList.Contains(op.OrderId)).ToList();
|
|
|
|
var dbOrderTotalList = fsql.Select<OrderTotalInfo>().Where(ot => interfaceOrderIdList.Contains(ot.Id)).ToList(); |
|
|
|
|
|
|
|
var orderSkuCFDetailList = new List<OrderSkuCFDetail>(); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
var orderSkuIds = new List<string>(); |
|
|
@ -286,6 +288,148 @@ namespace BBWY.Server.Business |
|
|
|
var isNewOrder = dbOrder == null; |
|
|
|
SDCalculationCostRequest sDCalculationCostRequest = null; //SD信息埋点
|
|
|
|
|
|
|
|
#region 优惠券/促销/拆分明细
|
|
|
|
if (!dbOrderTotalList.Any(ot => ot.Id == orderId)) |
|
|
|
{ |
|
|
|
var orderCouponDetailHttpResult = restApiService.SendRequest("http://yunding.qiyue666.com", "api/PlatformSDK/GetOrderCouponDetail", new |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
AppKey = appKey, |
|
|
|
AppSecret = appSecret, |
|
|
|
AppToken = appToken, |
|
|
|
Platform = Enums.Platform.京东 |
|
|
|
}, null, HttpMethod.Post); |
|
|
|
if (orderCouponDetailHttpResult.StatusCode == System.Net.HttpStatusCode.OK) |
|
|
|
{ |
|
|
|
var orderCouponDetailResponse = JsonConvert.DeserializeObject<ApiResponse<JToken>>(orderCouponDetailHttpResult.Content); |
|
|
|
if (orderCouponDetailResponse.Success) |
|
|
|
{ |
|
|
|
var jtoken = orderCouponDetailResponse.Data["jingdong_pop_order_coupondetail_responce"]["couponDetailExternal"]["couponDetailVo"]; |
|
|
|
|
|
|
|
#region 订单合计信息
|
|
|
|
var orderTotal = new OrderTotalInfo() |
|
|
|
{ |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
Id = orderId, |
|
|
|
TotalBalance = jtoken.Value<decimal>("totalBalance"), |
|
|
|
TotalBaseDiscount = jtoken.Value<decimal>("TotalBaseDiscount"), |
|
|
|
TotalBaseFee = jtoken.Value<decimal>("totalBaseFee"), |
|
|
|
TotalCoupon = jtoken.Value<decimal>("totalCoupon"), |
|
|
|
TotalDongQuan = jtoken.Value<decimal>("totalDongQuan"), |
|
|
|
TotalExpiryGiftDiscount = jtoken.Value<decimal>("totalExpiryGiftDiscount"), |
|
|
|
TotalGlobalGeneralIncludeTax = jtoken.Value<decimal>("totalGlobalGeneralIncludeTax"), |
|
|
|
TotalGlobalGeneralTax = jtoken.Value<decimal>("totalGlobalGeneralTax"), |
|
|
|
TotalItemPrice = jtoken.Value<decimal>("totalItemPrice"), |
|
|
|
TotalJdZhiFuYouHui = jtoken.Value<decimal>("totalJdZhiFuYouHui"), |
|
|
|
TotalJingDou = jtoken.Value<decimal>("totalJingDou"), |
|
|
|
TotalJingQuan = jtoken.Value<decimal>("totalJingQuan"), |
|
|
|
TotalJingXiangLiJin = jtoken.Value<decimal>("totalJingXiangLiJin"), |
|
|
|
TotalLiJinYouHui = jtoken.Value<decimal>("totalLiJinYouHui"), |
|
|
|
TotalLuoDiPeiService = jtoken.Value<decimal>("totalLuoDiPeiService"), |
|
|
|
TotalManJian = jtoken.Value<decimal>("totalManJian"), |
|
|
|
TotalPingTaiChengDanYouHuiQuan = jtoken.Value<decimal>("totalPingTaiChengDanYouHuiQuan"), |
|
|
|
TotalPlus95 = jtoken.Value<decimal>("totalPlus95"), |
|
|
|
TotalPromotionDiscount = jtoken.Value<decimal>("totalPromotionDiscount"), |
|
|
|
TotalRemoteFee = jtoken.Value<decimal>("totalRemoteFee"), |
|
|
|
TotalShouldPay = jtoken.Value<decimal>("totalShouldPay"), |
|
|
|
TotalSuperRedEnvelope = jtoken.Value<decimal>("totalSuperRedEnvelope"), |
|
|
|
TotalTaxFee = jtoken.Value<decimal>("totalTaxFee"), |
|
|
|
TotalTuiHuanHuoWuYou = jtoken.Value<decimal>("totalTuiHuanHuoWuYou"), |
|
|
|
TotalVenderFee = jtoken.Value<decimal>("totalVenderFee"), |
|
|
|
TotalXianPinLeiDongQuan = jtoken.Value<decimal>("totalXianPinLeiDongQuan"), |
|
|
|
TotalXianPinLeiJingQuan = jtoken.Value<decimal>("totalXianPinLeiJingQuan"), |
|
|
|
TotalZhiFuYingXiaoYouHui = jtoken.Value<decimal>("totalZhiFuYingXiaoYouHui") |
|
|
|
}; |
|
|
|
insertOrderTotalInfoList.Add(orderTotal); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单优惠券信息
|
|
|
|
var couponJArray = jtoken["couponList"] as JArray; |
|
|
|
if (couponJArray != null && couponJArray.Count() > 0) |
|
|
|
{ |
|
|
|
insertOrderCouponNewList.AddRange(couponJArray.Select(j => new OrderCoupon_New() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
CouponId = j.Value<int>("couponId"), |
|
|
|
CouponName = j.Value<string>("couponName"), |
|
|
|
CouponNum = j.Value<int>("couponNum"), |
|
|
|
CouponPrice = j.Value<decimal>("couponPrice"), |
|
|
|
CouponTypeDesc = j.Value<string>("couponTypeDesc"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
JdCouponId = j.Value<string>("jdCouponId"), |
|
|
|
JdDivideMoney = j.Value<decimal>("jdDivideMoney"), |
|
|
|
OrderId = orderId, |
|
|
|
PriceDivide = j.Value<bool>("priceDivide"), |
|
|
|
VenderDivideMoney = j.Value<decimal>("venderDivideMoney") |
|
|
|
})); |
|
|
|
} |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单活动信息
|
|
|
|
var promotionJArray = jtoken["promotionList"] as JArray; |
|
|
|
if (promotionJArray != null && promotionJArray.Count() > 0) |
|
|
|
{ |
|
|
|
insertOrderPromotionList.AddRange(promotionJArray.Select(j => new OrderPromotion() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
BeginTime = j.Value<DateTime>("beginTime"), |
|
|
|
EndTime = j.Value<DateTime>("endTime"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
OrderId = orderId, |
|
|
|
PromotionId = j.Value<long>("promotionId"), |
|
|
|
PromotionName = j.Value<string>("promotionName"), |
|
|
|
SalePrice = j.Value<decimal>("salePrice"), |
|
|
|
SaleTypeDesc = j.Value<string>("saleTypeDesc") |
|
|
|
})); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单sku金额明细
|
|
|
|
var skuJArray = jtoken["skuList"] as JArray; |
|
|
|
foreach (var oskuJtoken in skuJArray) |
|
|
|
{ |
|
|
|
var oskuCF = new OrderSkuCFDetail() |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
SkuId = oskuJtoken.Value<string>("skuCode"), |
|
|
|
Balance = oskuJtoken.Value<decimal>("balance"), |
|
|
|
BaseDiscount = oskuJtoken.Value<decimal>("baseDiscount"), |
|
|
|
BaseFee = oskuJtoken.Value<decimal>("baseFee"), |
|
|
|
Coupon = oskuJtoken.Value<decimal>("coupon"), |
|
|
|
DongQuan = oskuJtoken.Value<decimal>("dongQuan"), |
|
|
|
ExpiryGiftDiscount = oskuJtoken.Value<decimal>("expiryGiftDiscount"), |
|
|
|
GlobalGeneralIncludeTax = oskuJtoken.Value<decimal>("globalGeneralIncludeTax"), |
|
|
|
GlobalGeneralTax = oskuJtoken.Value<decimal>("globalGeneralTax"), |
|
|
|
JdZhiFuYouHui = oskuJtoken.Value<decimal>("jdZhiFuYouHui"), |
|
|
|
JingDou = oskuJtoken.Value<decimal>("jingDou"), |
|
|
|
JingQuan = oskuJtoken.Value<decimal>("jingQuan"), |
|
|
|
JingXiangLiJin = oskuJtoken.Value<decimal>("jingXiangLiJin"), |
|
|
|
LiJinYouHui = oskuJtoken.Value<decimal>("liJinYouHui"), |
|
|
|
LuoDiPeiService = oskuJtoken.Value<decimal>("luoDiPeiService"), |
|
|
|
ManJian = oskuJtoken.Value<decimal>("manJian"), |
|
|
|
PingTaiChengDanYouHuiQuan = oskuJtoken.Value<decimal>("pingTaiChengDanYouHuiQuan"), |
|
|
|
Plus95 = oskuJtoken.Value<decimal>("plus95"), |
|
|
|
PromotionDiscount = oskuJtoken.Value<decimal>("promotionDiscount"), |
|
|
|
RemoteFee = oskuJtoken.Value<decimal>("remoteFee"), |
|
|
|
ShouldPay = oskuJtoken.Value<decimal>("shouldPay"), |
|
|
|
SuperRedEnvelope = oskuJtoken.Value<decimal>("superRedEnvelope"), |
|
|
|
TaxFee = oskuJtoken.Value<decimal>("taxFee"), |
|
|
|
TuiHuanHuoWuYou = oskuJtoken.Value<decimal>("tuiHuanHuoWuYou"), |
|
|
|
VenderFee = oskuJtoken.Value<decimal>("venderFee"), |
|
|
|
XianPinLeiDongQuan = oskuJtoken.Value<decimal>("xianPinLeiDongQuan"), |
|
|
|
XianPinLeiJingQuan = oskuJtoken.Value<decimal>("xianPinLeiJingQuan"), |
|
|
|
ZhiFuYingXiaoYouHui = oskuJtoken.Value<decimal>("zhiFuYingXiaoYouHui") |
|
|
|
}; |
|
|
|
orderSkuCFDetailList.Add(oskuCF); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单基本信息
|
|
|
|
var buyerRemark = orderJToken.Value<string>("orderRemark"); |
|
|
|
var venderRemark = orderJToken.Value<string>("venderRemark"); |
|
|
@ -357,6 +501,8 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
//if (orderSkuJToken.Value<decimal>("jdPrice") != 0M)
|
|
|
|
//{
|
|
|
|
var oskuCF = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == skuId); |
|
|
|
|
|
|
|
var osku = new OrderSku() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
@ -367,7 +513,34 @@ namespace BBWY.Server.Business |
|
|
|
ProductNo = orderSkuJToken.Value<string>("productNo"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
OrderId = orderId, |
|
|
|
SkuId = skuId |
|
|
|
SkuId = skuId, |
|
|
|
Balance = oskuCF?.Balance ?? 0M, |
|
|
|
BaseDiscount = oskuCF?.BaseFee ?? 0M, |
|
|
|
BaseFee = oskuCF?.BaseFee ?? 0M, |
|
|
|
Coupon = oskuCF?.Coupon ?? 0M, |
|
|
|
DongQuan = oskuCF?.DongQuan ?? 0M, |
|
|
|
ExpiryGiftDiscount = oskuCF?.ExpiryGiftDiscount ?? 0M, |
|
|
|
GlobalGeneralIncludeTax = oskuCF?.GlobalGeneralIncludeTax ?? 0M, |
|
|
|
GlobalGeneralTax = oskuCF?.GlobalGeneralTax ?? 0M, |
|
|
|
JdZhiFuYouHui = oskuCF?.JdZhiFuYouHui ?? 0M, |
|
|
|
JingDou = oskuCF?.JingDou ?? 0M, |
|
|
|
JingQuan = oskuCF?.JingQuan ?? 0M, |
|
|
|
JingXiangLiJin = oskuCF?.JingXiangLiJin ?? 0M, |
|
|
|
LiJinYouHui = oskuCF?.LiJinYouHui ?? 0M, |
|
|
|
LuoDiPeiService = oskuCF?.LuoDiPeiService ?? 0M, |
|
|
|
ManJian = oskuCF?.ManJian ?? 0M, |
|
|
|
PingTaiChengDanYouHuiQuan = oskuCF?.PingTaiChengDanYouHuiQuan ?? 0M, |
|
|
|
Plus95 = oskuCF?.Plus95 ?? 0M, |
|
|
|
PromotionDiscount = oskuCF?.PromotionDiscount ?? 0M, |
|
|
|
RemoteFee = oskuCF?.RemoteFee ?? 0M, |
|
|
|
ShouldPay = oskuCF?.ShouldPay ?? 0M, |
|
|
|
SuperRedEnvelope = oskuCF?.SuperRedEnvelope ?? 0M, |
|
|
|
TaxFee = oskuCF?.TaxFee ?? 0M, |
|
|
|
TuiHuanHuoWuYou = oskuCF?.TuiHuanHuoWuYou ?? 0M, |
|
|
|
VenderFee = oskuCF?.VenderFee ?? 0M, |
|
|
|
XianPinLeiDongQuan = oskuCF?.XianPinLeiDongQuan ?? 0M, |
|
|
|
XianPinLeiJingQuan = oskuCF?.XianPinLeiJingQuan ?? 0M, |
|
|
|
ZhiFuYingXiaoYouHui = oskuCF?.ZhiFuYingXiaoYouHui ?? 0M |
|
|
|
}; |
|
|
|
insertOrderSkuList.Add(osku); |
|
|
|
//}
|
|
|
@ -394,13 +567,47 @@ namespace BBWY.Server.Business |
|
|
|
var skuId = orderSkuJToken.Value<string>("skuId"); |
|
|
|
var dbOsku = currentDbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId); |
|
|
|
var skuUpdateKey = $"{orderId}_{skuId}"; |
|
|
|
if (dbOsku != null && dbOsku.ProductId != wareId && !updateOrderSkuDictionary.ContainsKey(skuUpdateKey)) |
|
|
|
{ |
|
|
|
var update = fsql.Update<OrderSku>(dbOsku.Id).Set(osku => osku.ProductId, wareId); |
|
|
|
if (dbOsku != null) |
|
|
|
{ |
|
|
|
var oskuCF = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == dbOsku.SkuId); |
|
|
|
var isDetailChanged = dbOsku.ShouldPay == 0 && oskuCF != null && oskuCF.ShouldPay != 0; |
|
|
|
if (dbOsku.ProductId != wareId || isDetailChanged) |
|
|
|
{ |
|
|
|
var update = fsql.Update<OrderSku>(dbOsku.Id) |
|
|
|
.SetIf(dbOsku.ProductId != wareId, osku => osku.ProductId, wareId) |
|
|
|
.SetIf(isDetailChanged, osku => osku.ShouldPay, oskuCF.ShouldPay) |
|
|
|
.SetIf(isDetailChanged, osku => osku.Balance, oskuCF.Balance) |
|
|
|
.SetIf(isDetailChanged, osku => osku.BaseDiscount, oskuCF.BaseDiscount) |
|
|
|
.SetIf(isDetailChanged, osku => osku.BaseFee, oskuCF.BaseFee) |
|
|
|
.SetIf(isDetailChanged, osku => osku.Coupon, oskuCF.Coupon) |
|
|
|
.SetIf(isDetailChanged, osku => osku.DongQuan, oskuCF.DongQuan) |
|
|
|
.SetIf(isDetailChanged, osku => osku.ExpiryGiftDiscount, oskuCF.ExpiryGiftDiscount) |
|
|
|
.SetIf(isDetailChanged, osku => osku.GlobalGeneralIncludeTax, oskuCF.GlobalGeneralIncludeTax) |
|
|
|
.SetIf(isDetailChanged, osku => osku.GlobalGeneralTax, oskuCF.GlobalGeneralTax) |
|
|
|
.SetIf(isDetailChanged, osku => osku.JdZhiFuYouHui, oskuCF.JdZhiFuYouHui) |
|
|
|
.SetIf(isDetailChanged, osku => osku.JingDou, oskuCF.JingDou) |
|
|
|
.SetIf(isDetailChanged, osku => osku.JingQuan, oskuCF.JingQuan) |
|
|
|
.SetIf(isDetailChanged, osku => osku.JingXiangLiJin, oskuCF.JingXiangLiJin) |
|
|
|
.SetIf(isDetailChanged, osku => osku.LiJinYouHui, oskuCF.LiJinYouHui) |
|
|
|
.SetIf(isDetailChanged, osku => osku.LuoDiPeiService, oskuCF.LuoDiPeiService) |
|
|
|
.SetIf(isDetailChanged, osku => osku.ManJian, oskuCF.ManJian) |
|
|
|
.SetIf(isDetailChanged, osku => osku.PingTaiChengDanYouHuiQuan, oskuCF.PingTaiChengDanYouHuiQuan) |
|
|
|
.SetIf(isDetailChanged, osku => osku.Plus95, oskuCF.Plus95) |
|
|
|
.SetIf(isDetailChanged, osku => osku.PromotionDiscount, oskuCF.PromotionDiscount) |
|
|
|
.SetIf(isDetailChanged, osku => osku.RemoteFee, oskuCF.RemoteFee) |
|
|
|
.SetIf(isDetailChanged, osku => osku.SuperRedEnvelope, oskuCF.SuperRedEnvelope) |
|
|
|
.SetIf(isDetailChanged, osku => osku.TaxFee, oskuCF.TaxFee) |
|
|
|
.SetIf(isDetailChanged, osku => osku.TuiHuanHuoWuYou, oskuCF.TuiHuanHuoWuYou) |
|
|
|
.SetIf(isDetailChanged, osku => osku.VenderFee, oskuCF.VenderFee) |
|
|
|
.SetIf(isDetailChanged, osku => osku.XianPinLeiDongQuan, oskuCF.XianPinLeiDongQuan) |
|
|
|
.SetIf(isDetailChanged, osku => osku.XianPinLeiJingQuan, oskuCF.XianPinLeiJingQuan) |
|
|
|
.SetIf(isDetailChanged, osku => osku.ZhiFuYingXiaoYouHui, oskuCF.ZhiFuYingXiaoYouHui); |
|
|
|
; |
|
|
|
updateOrderSkuDictionary.Add(skuUpdateKey, update); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 收货人信息
|
|
|
@ -517,7 +724,13 @@ namespace BBWY.Server.Business |
|
|
|
{ |
|
|
|
var orderSkuId = orderSkuJToken.Value<string>("skuId"); |
|
|
|
var itemTotal = orderSkuJToken.Value<int>("itemTotal"); //sku购买数量
|
|
|
|
var itemPrice = orderSkuJToken.Value<decimal>("jdPrice"); //sku单价
|
|
|
|
decimal? skuShouldPay = orderSkuCFDetailList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
if (skuShouldPay == null) |
|
|
|
skuShouldPay = insertOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
if (skuShouldPay == null) |
|
|
|
skuShouldPay = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == orderSkuId)?.ShouldPay; |
|
|
|
|
|
|
|
//var itemPrice = orderSkuJToken.Value<decimal>("jdPrice"); //sku单价
|
|
|
|
var isReduceMultiTimes = false; //是否多次扣减库存
|
|
|
|
while (itemTotal != 0) |
|
|
|
{ |
|
|
@ -529,6 +742,7 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
//本次扣减量
|
|
|
|
var deductionQuantity = purchaseOrder.RemainingQuantity >= itemTotal ? itemTotal : purchaseOrder.RemainingQuantity; |
|
|
|
//var deductionQuantity = itemTotal;
|
|
|
|
//本次扣减量的采购成本
|
|
|
|
var currentPurchaseAmount = purchaseOrder.UnitCost * deductionQuantity; |
|
|
|
//本次扣减量的发货运费
|
|
|
@ -570,9 +784,11 @@ namespace BBWY.Server.Business |
|
|
|
StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity, |
|
|
|
IsEnabled = true |
|
|
|
}; |
|
|
|
orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential - |
|
|
|
(orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) - |
|
|
|
itemPrice * deductionQuantity * platformCommissionRatio; |
|
|
|
|
|
|
|
//orderCostDetail.SkuGrossProfit = itemPrice * deductionQuantity - avgPreferential -
|
|
|
|
// (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight) -
|
|
|
|
// itemPrice * deductionQuantity * platformCommissionRatio;
|
|
|
|
orderCostDetail.SkuGrossProfit = skuShouldPay ?? 0M - (orderCostDetail.TotalCost + orderCostDetail.DeliveryExpressFreight); |
|
|
|
insertOrderCostDetailList.Add(orderCostDetail); |
|
|
|
} |
|
|
|
} |
|
|
@ -652,196 +868,6 @@ namespace BBWY.Server.Business |
|
|
|
} |
|
|
|
catch { } |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 优惠券/促销/拆分明细
|
|
|
|
if (!dbOrderTotalList.Any(ot => ot.Id == orderId)) |
|
|
|
{ |
|
|
|
var orderCouponDetailHttpResult = restApiService.SendRequest("http://yunding.qiyue666.com", "api/PlatformSDK/GetOrderCouponDetail", new |
|
|
|
{ |
|
|
|
OrderId = orderId, |
|
|
|
AppKey = appKey, |
|
|
|
AppSecret = appSecret, |
|
|
|
AppToken = appToken, |
|
|
|
Platform = Enums.Platform.京东 |
|
|
|
}, null, HttpMethod.Post); |
|
|
|
if (orderCouponDetailHttpResult.StatusCode == System.Net.HttpStatusCode.OK) |
|
|
|
{ |
|
|
|
var orderCouponDetailResponse = JsonConvert.DeserializeObject<ApiResponse<JToken>>(orderCouponDetailHttpResult.Content); |
|
|
|
if (orderCouponDetailResponse.Success) |
|
|
|
{ |
|
|
|
var jtoken = orderCouponDetailResponse.Data["jingdong_pop_order_coupondetail_responce"]["couponDetailExternal"]["couponDetailVo"]; |
|
|
|
|
|
|
|
#region 订单合计信息
|
|
|
|
var orderTotal = new OrderTotalInfo() |
|
|
|
{ |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
Id = orderId, |
|
|
|
TotalBalance = jtoken.Value<decimal>("totalBalance"), |
|
|
|
TotalBaseDiscount = jtoken.Value<decimal>("TotalBaseDiscount"), |
|
|
|
TotalBaseFee = jtoken.Value<decimal>("totalBaseFee"), |
|
|
|
TotalCoupon = jtoken.Value<decimal>("totalCoupon"), |
|
|
|
TotalDongQuan = jtoken.Value<decimal>("totalDongQuan"), |
|
|
|
TotalExpiryGiftDiscount = jtoken.Value<decimal>("totalExpiryGiftDiscount"), |
|
|
|
TotalGlobalGeneralIncludeTax = jtoken.Value<decimal>("totalGlobalGeneralIncludeTax"), |
|
|
|
TotalGlobalGeneralTax = jtoken.Value<decimal>("totalGlobalGeneralTax"), |
|
|
|
TotalItemPrice = jtoken.Value<decimal>("totalItemPrice"), |
|
|
|
TotalJdZhiFuYouHui = jtoken.Value<decimal>("totalJdZhiFuYouHui"), |
|
|
|
TotalJingDou = jtoken.Value<decimal>("totalJingDou"), |
|
|
|
TotalJingQuan = jtoken.Value<decimal>("totalJingQuan"), |
|
|
|
TotalJingXiangLiJin = jtoken.Value<decimal>("totalJingXiangLiJin"), |
|
|
|
TotalLiJinYouHui = jtoken.Value<decimal>("totalLiJinYouHui"), |
|
|
|
TotalLuoDiPeiService = jtoken.Value<decimal>("totalLuoDiPeiService"), |
|
|
|
TotalManJian = jtoken.Value<decimal>("totalManJian"), |
|
|
|
TotalPingTaiChengDanYouHuiQuan = jtoken.Value<decimal>("totalPingTaiChengDanYouHuiQuan"), |
|
|
|
TotalPlus95 = jtoken.Value<decimal>("totalPlus95"), |
|
|
|
TotalPromotionDiscount = jtoken.Value<decimal>("totalPromotionDiscount"), |
|
|
|
TotalRemoteFee = jtoken.Value<decimal>("totalRemoteFee"), |
|
|
|
TotalShouldPay = jtoken.Value<decimal>("totalShouldPay"), |
|
|
|
TotalSuperRedEnvelope = jtoken.Value<decimal>("totalSuperRedEnvelope"), |
|
|
|
TotalTaxFee = jtoken.Value<decimal>("totalTaxFee"), |
|
|
|
TotalTuiHuanHuoWuYou = jtoken.Value<decimal>("totalTuiHuanHuoWuYou"), |
|
|
|
TotalVenderFee = jtoken.Value<decimal>("totalVenderFee"), |
|
|
|
TotalXianPinLeiDongQuan = jtoken.Value<decimal>("totalXianPinLeiDongQuan"), |
|
|
|
TotalXianPinLeiJingQuan = jtoken.Value<decimal>("totalXianPinLeiJingQuan"), |
|
|
|
TotalZhiFuYingXiaoYouHui = jtoken.Value<decimal>("totalZhiFuYingXiaoYouHui") |
|
|
|
}; |
|
|
|
insertOrderTotalInfoList.Add(orderTotal); |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单优惠券信息
|
|
|
|
var couponJArray = jtoken["couponList"] as JArray; |
|
|
|
if (couponJArray != null && couponJArray.Count() > 0) |
|
|
|
{ |
|
|
|
insertOrderCouponNewList.AddRange(couponJArray.Select(j => new OrderCoupon_New() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
CouponId = j.Value<int>("couponId"), |
|
|
|
CouponName = j.Value<string>("couponName"), |
|
|
|
CouponNum = j.Value<int>("couponNum"), |
|
|
|
CouponPrice = j.Value<decimal>("couponPrice"), |
|
|
|
CouponTypeDesc = j.Value<string>("couponTypeDesc"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
JdCouponId = j.Value<string>("jdCouponId"), |
|
|
|
JdDivideMoney = j.Value<decimal>("jdDivideMoney"), |
|
|
|
OrderId = orderId, |
|
|
|
PriceDivide = j.Value<bool>("priceDivide"), |
|
|
|
VenderDivideMoney = j.Value<decimal>("venderDivideMoney") |
|
|
|
})); |
|
|
|
} |
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单活动信息
|
|
|
|
var promotionJArray = jtoken["promotionList"] as JArray; |
|
|
|
if (promotionJArray != null && promotionJArray.Count() > 0) |
|
|
|
{ |
|
|
|
insertOrderPromotionList.AddRange(promotionJArray.Select(j => new OrderPromotion() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
BeginTime = j.Value<DateTime>("beginTime"), |
|
|
|
EndTime = j.Value<DateTime>("endTime"), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
OrderId = orderId, |
|
|
|
PromotionId = j.Value<int>("promotionId"), |
|
|
|
PromotionName = j.Value<string>("promotionName"), |
|
|
|
SalePrice = j.Value<decimal>("salePrice"), |
|
|
|
SaleTypeDesc = j.Value<string>("saleTypeDesc") |
|
|
|
})); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 订单sku金额明细
|
|
|
|
var skuJArray = jtoken["skuList"] as JArray; |
|
|
|
if (isNewOrder) |
|
|
|
{ |
|
|
|
var currentOrderSkuList = insertOrderSkuList.Where(osku => osku.OrderId == orderId).ToList(); |
|
|
|
foreach (var oskuJtoken in skuJArray) |
|
|
|
{ |
|
|
|
var osku = currentOrderSkuList.FirstOrDefault(x => x.SkuId == oskuJtoken.Value<string>("skuCode")); |
|
|
|
if (osku != null) |
|
|
|
{ |
|
|
|
osku.Balance = oskuJtoken.Value<decimal>("balance"); |
|
|
|
osku.BaseDiscount = oskuJtoken.Value<decimal>("baseDiscount"); |
|
|
|
osku.BaseFee = oskuJtoken.Value<decimal>("baseFee"); |
|
|
|
osku.Coupon = oskuJtoken.Value<decimal>("coupon"); |
|
|
|
osku.DongQuan = oskuJtoken.Value<decimal>("dongQuan"); |
|
|
|
osku.ExpiryGiftDiscount = oskuJtoken.Value<decimal>("expiryGiftDiscount"); |
|
|
|
osku.GlobalGeneralIncludeTax = oskuJtoken.Value<decimal>("globalGeneralIncludeTax"); |
|
|
|
osku.GlobalGeneralTax = oskuJtoken.Value<decimal>("globalGeneralTax"); |
|
|
|
osku.JdZhiFuYouHui = oskuJtoken.Value<decimal>("jdZhiFuYouHui"); |
|
|
|
osku.JingDou = oskuJtoken.Value<decimal>("jingDou"); |
|
|
|
osku.JingQuan = oskuJtoken.Value<decimal>("jingQuan"); |
|
|
|
osku.JingXiangLiJin = oskuJtoken.Value<decimal>("jingXiangLiJin"); |
|
|
|
osku.LiJinYouHui = oskuJtoken.Value<decimal>("liJinYouHui"); |
|
|
|
osku.LuoDiPeiService = oskuJtoken.Value<decimal>("luoDiPeiService"); |
|
|
|
osku.ManJian = oskuJtoken.Value<decimal>("manJian"); |
|
|
|
osku.PingTaiChengDanYouHuiQuan = oskuJtoken.Value<decimal>("pingTaiChengDanYouHuiQuan"); |
|
|
|
osku.Plus95 = oskuJtoken.Value<decimal>("plus95"); |
|
|
|
osku.PromotionDiscount = oskuJtoken.Value<decimal>("promotionDiscount"); |
|
|
|
osku.RemoteFee = oskuJtoken.Value<decimal>("remoteFee"); |
|
|
|
osku.ShouldPay = oskuJtoken.Value<decimal>("shouldPay"); |
|
|
|
osku.SuperRedEnvelope = oskuJtoken.Value<decimal>("superRedEnvelope"); |
|
|
|
osku.TaxFee = oskuJtoken.Value<decimal>("taxFee"); |
|
|
|
osku.TuiHuanHuoWuYou = oskuJtoken.Value<decimal>("tuiHuanHuoWuYou"); |
|
|
|
osku.VenderFee = oskuJtoken.Value<decimal>("venderFee"); |
|
|
|
osku.XianPinLeiDongQuan = oskuJtoken.Value<decimal>("xianPinLeiDongQuan"); |
|
|
|
osku.XianPinLeiJingQuan = oskuJtoken.Value<decimal>("xianPinLeiJingQuan"); |
|
|
|
osku.ZhiFuYingXiaoYouHui = oskuJtoken.Value<decimal>("zhiFuYingXiaoYouHui"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
foreach (var oskuJtoken in skuJArray) |
|
|
|
{ |
|
|
|
var skuId = oskuJtoken.Value<string>("skuCode"); |
|
|
|
var skuUpdateKey = $"{orderId}_{skuId}"; |
|
|
|
if (!updateOrderSkuDictionary.TryGetValue(skuUpdateKey, out var update)) |
|
|
|
{ |
|
|
|
var currentOrderSku = dbOrderSkuList.FirstOrDefault(x => x.OrderId == orderId && x.SkuId == skuId); |
|
|
|
if (currentOrderSku != null) |
|
|
|
{ |
|
|
|
update = fsql.Update<OrderSku>(currentOrderSku.Id); |
|
|
|
updateOrderSkuDictionary.Add(skuUpdateKey, update); |
|
|
|
} |
|
|
|
} |
|
|
|
if (update == null) |
|
|
|
continue; |
|
|
|
update = update.Set(osku => osku.Balance, oskuJtoken.Value<decimal>("balance")) |
|
|
|
.Set(osku => osku.BaseDiscount, oskuJtoken.Value<decimal>("baseDiscount")) |
|
|
|
.Set(osku => osku.BaseFee, oskuJtoken.Value<decimal>("baseFee")) |
|
|
|
.Set(osku => osku.Coupon, oskuJtoken.Value<decimal>("coupon")) |
|
|
|
.Set(osku => osku.DongQuan, oskuJtoken.Value<decimal>("dongQuan")) |
|
|
|
.Set(osku => osku.ExpiryGiftDiscount, oskuJtoken.Value<decimal>("expiryGiftDiscount")) |
|
|
|
.Set(osku => osku.GlobalGeneralIncludeTax, oskuJtoken.Value<decimal>("globalGeneralIncludeTax")) |
|
|
|
.Set(osku => osku.GlobalGeneralTax, oskuJtoken.Value<decimal>("globalGeneralTax")) |
|
|
|
.Set(osku => osku.JdZhiFuYouHui, oskuJtoken.Value<decimal>("jdZhiFuYouHui")) |
|
|
|
.Set(osku => osku.JingDou, oskuJtoken.Value<decimal>("jingDou")) |
|
|
|
.Set(osku => osku.JingQuan, oskuJtoken.Value<decimal>("jingQuan")) |
|
|
|
.Set(osku => osku.JingXiangLiJin, oskuJtoken.Value<decimal>("jingXiangLiJin")) |
|
|
|
.Set(osku => osku.LiJinYouHui, oskuJtoken.Value<decimal>("liJinYouHui")) |
|
|
|
.Set(osku => osku.LuoDiPeiService, oskuJtoken.Value<decimal>("luoDiPeiService")) |
|
|
|
.Set(osku => osku.ManJian, oskuJtoken.Value<decimal>("manJian")) |
|
|
|
.Set(osku => osku.PingTaiChengDanYouHuiQuan, oskuJtoken.Value<decimal>("pingTaiChengDanYouHuiQuan")) |
|
|
|
.Set(osku => osku.Plus95, oskuJtoken.Value<decimal>("plus95")) |
|
|
|
.Set(osku => osku.PromotionDiscount, oskuJtoken.Value<decimal>("promotionDiscount")) |
|
|
|
.Set(osku => osku.RemoteFee, oskuJtoken.Value<decimal>("remoteFee")) |
|
|
|
.Set(osku => osku.ShouldPay, oskuJtoken.Value<decimal>("shouldPay")) |
|
|
|
.Set(osku => osku.SuperRedEnvelope, oskuJtoken.Value<decimal>("superRedEnvelope")) |
|
|
|
.Set(osku => osku.TaxFee, oskuJtoken.Value<decimal>("taxFee")) |
|
|
|
.Set(osku => osku.TuiHuanHuoWuYou, oskuJtoken.Value<decimal>("tuiHuanHuoWuYou")) |
|
|
|
.Set(osku => osku.VenderFee, oskuJtoken.Value<decimal>("venderFee")) |
|
|
|
.Set(osku => osku.XianPinLeiDongQuan, oskuJtoken.Value<decimal>("xianPinLeiDongQuan")) |
|
|
|
.Set(osku => osku.XianPinLeiJingQuan, oskuJtoken.Value<decimal>("xianPinLeiJingQuan")) |
|
|
|
.Set(osku => osku.ZhiFuYingXiaoYouHui, oskuJtoken.Value<decimal>("zhiFuYingXiaoYouHui")); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
|
|
|
|
#region 补齐sku logo
|
|
|
|