|
@ -211,6 +211,8 @@ 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<OrderTotalInfo> insertOrderTotalInfoList = new List<OrderTotalInfo>(); |
|
|
List<OrderTotalInfo> insertOrderTotalInfoList = new List<OrderTotalInfo>(); |
|
|
|
|
|
List<OrderCoupon_New> insertOrderCouponNewList = new List<OrderCoupon_New>(); |
|
|
|
|
|
List<OrderPromotion> insertOrderPromotionList = new List<OrderPromotion>(); |
|
|
|
|
|
|
|
|
IList<IUpdate<Order>> updateOrderList = new List<IUpdate<Order>>(); |
|
|
IList<IUpdate<Order>> updateOrderList = new List<IUpdate<Order>>(); |
|
|
Dictionary<string, IUpdate<OrderSku>> updateOrderSkuDictionary = new Dictionary<string, IUpdate<OrderSku>>(); |
|
|
Dictionary<string, IUpdate<OrderSku>> updateOrderSkuDictionary = new Dictionary<string, IUpdate<OrderSku>>(); |
|
@ -391,7 +393,7 @@ namespace BBWY.Server.Business |
|
|
var wareId = orderSkuJToken.Value<string>("wareId"); |
|
|
var wareId = orderSkuJToken.Value<string>("wareId"); |
|
|
var skuId = orderSkuJToken.Value<string>("skuId"); |
|
|
var skuId = orderSkuJToken.Value<string>("skuId"); |
|
|
var dbOsku = currentDbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId); |
|
|
var dbOsku = currentDbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId); |
|
|
var skuUpdateKey = $""; |
|
|
var skuUpdateKey = $"{orderId}_{skuId}"; |
|
|
if (dbOsku != null && dbOsku.ProductId != wareId && !updateOrderSkuDictionary.ContainsKey(skuUpdateKey)) |
|
|
if (dbOsku != null && dbOsku.ProductId != wareId && !updateOrderSkuDictionary.ContainsKey(skuUpdateKey)) |
|
|
{ |
|
|
{ |
|
|
var update = fsql.Update<OrderSku>(dbOsku.Id).Set(osku => osku.ProductId, wareId); |
|
|
var update = fsql.Update<OrderSku>(dbOsku.Id).Set(osku => osku.ProductId, wareId); |
|
@ -652,11 +654,192 @@ namespace BBWY.Server.Business |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 优惠券/促销/拆分明细
|
|
|
#region 优惠券/促销/拆分明细
|
|
|
if (orderState != Enums.OrderState.暂停 && |
|
|
if (!dbOrderTotalList.Any(ot => ot.Id == orderId)) |
|
|
orderState != Enums.OrderState.待付款 && |
|
|
|
|
|
!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
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
@ -696,8 +879,25 @@ namespace BBWY.Server.Business |
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 需要清理的数据
|
|
|
|
|
|
var orderCouponDetailOrderIdList = insertOrderTotalInfoList.Select(x => x.Id).ToList(); |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
fsql.Transaction(() => |
|
|
{ |
|
|
{ |
|
|
|
|
|
if (orderCouponDetailOrderIdList.Count() > 0) |
|
|
|
|
|
{ |
|
|
|
|
|
fsql.Delete<OrderTotalInfo>(orderCouponDetailOrderIdList).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderCoupon_New>().Where(on => orderCouponDetailOrderIdList.Contains(on.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
fsql.Delete<OrderPromotion>().Where(op => orderCouponDetailOrderIdList.Contains(op.OrderId)).ExecuteAffrows(); |
|
|
|
|
|
} |
|
|
|
|
|
if (insertOrderTotalInfoList.Count() > 0) |
|
|
|
|
|
fsql.Insert(insertOrderTotalInfoList).ExecuteAffrows(); |
|
|
|
|
|
if (insertOrderCouponNewList.Count() > 0) |
|
|
|
|
|
fsql.Insert(insertOrderCouponNewList).ExecuteAffrows(); |
|
|
|
|
|
if (insertOrderPromotionList.Count() > 0) |
|
|
|
|
|
fsql.Insert(insertOrderPromotionList).ExecuteAffrows(); |
|
|
|
|
|
|
|
|
if (insertOrderList.Count() > 0) |
|
|
if (insertOrderList.Count() > 0) |
|
|
fsql.Insert(insertOrderList).ExecuteAffrows(); |
|
|
fsql.Insert(insertOrderList).ExecuteAffrows(); |
|
|
if (insertOrderSkuList.Count() > 0) |
|
|
if (insertOrderSkuList.Count() > 0) |
|
|