Browse Source

订单同步sku毛利公式计算使用sku用户应付

AddValidOverTime
shanji 2 years ago
parent
commit
e5b1554820
  1. 422
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs
  2. 6
      BBWY.Server.Model/Db/Order/OrderCoupon_New.cs
  3. 3
      BBWY.Server.Model/Db/Order/OrderPromotion.cs
  4. 150
      BBWY.Server.Model/Dto/Response/JD/OrderSkuCFDetail.cs

422
BBWY.Server.Business/Sync/OrderSyncBusiness.cs

@ -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

6
BBWY.Server.Model/Db/Order/OrderCoupon_New.cs

@ -14,14 +14,12 @@ namespace BBWY.Server.Model.Db
/// <summary>
/// 优惠券数量/发行量
/// </summary>
[Column(DbType = "int")]
public int? CouponNum { get; set; } = 0;
public long? CouponNum { get; set; } = 0;
/// <summary>
/// POP优惠券ID
/// </summary>
[Column(DbType = "int")]
public int? CouponId { get; set; }
public long? CouponId { get; set; }
/// <summary>
/// 活动名称

3
BBWY.Server.Model/Db/Order/OrderPromotion.cs

@ -35,8 +35,7 @@ namespace BBWY.Server.Model.Db
/// <summary>
/// pop促销ID
/// </summary>
[Column(DbType = "int")]
public int? PromotionId { get; set; }
public long? PromotionId { get; set; }
/// <summary>
/// 活动名称

150
BBWY.Server.Model/Dto/Response/JD/OrderSkuCFDetail.cs

@ -0,0 +1,150 @@
namespace BBWY.Server.Model.Dto
{
/// <summary>
/// 订单Sku拆分明细对象
/// </summary>
public class OrderSkuCFDetail
{
public string OrderId { get; set; }
public string SkuId { get; set; }
/// <summary>
/// 京东支付优惠,计价单位:元
/// </summary>
public decimal? JdZhiFuYouHui { get; set; } = 0.00M;
/// <summary>
/// plus会员95折优惠,计价单位:元
/// </summary>
public decimal? Plus95 { get; set; } = 0.00M;
/// <summary>
/// 余额,计价单位:元
/// </summary>
public decimal? Balance { get; set; } = 0.00M;
/// <summary>
/// 基础优惠,计价单位:元
/// </summary>
public decimal? BaseDiscount { get; set; } = 0.00M;
/// <summary>
/// 基础运费,计价单位:元
/// </summary>
public decimal? BaseFee { get; set; } = 0.00M;
/// <summary>
/// 优惠券,计价单位:元
/// </summary>
public decimal? Coupon { get; set; } = 0.00M;
/// <summary>
/// 东券,计价单位:元
/// </summary>
public decimal? DongQuan { get; set; } = 0.00M;
/// <summary>
/// 满期赠促销
/// </summary>
public decimal? ExpiryGiftDiscount { get; set; } = 0.00M;
/// <summary>
/// 全球购一般贸易税(包税),计价单位:元
/// </summary>
public decimal? GlobalGeneralIncludeTax { get; set; } = 0.00M;
/// <summary>
/// 全球购一般贸易税,计价单位:元
/// </summary>
public decimal? GlobalGeneralTax { get; set; } = 0.00M;
/// <summary>
/// 京豆,计价单位:元
/// </summary>
public decimal? JingDou { get; set; } = 0.00M;
/// <summary>
/// 京券,计价单位:元
/// </summary>
public decimal? JingQuan { get; set; } = 0.00M;
/// <summary>
/// 京享礼金(首单礼金或重逢礼金),计价单位:元
/// </summary>
public decimal? JingXiangLiJin { get; set; } = 0.00M;
/// <summary>
/// 礼金优惠,计价单位:元
/// </summary>
public decimal? LiJinYouHui { get; set; } = 0.00M;
/// <summary>
/// 落地配服务,计价单位:元
/// </summary>
public decimal? LuoDiPeiService { get; set; } = 0.00M;
/// <summary>
/// 满减,计价单位:元
/// </summary>
public decimal? ManJian { get; set; } = 0.00M;
/// <summary>
/// 按比例平台承担优惠券,计价单位:元
/// </summary>
public decimal? PingTaiChengDanYouHuiQuan { get; set; } = 0.00M;
/// <summary>
/// 跨店满减促销
/// </summary>
public decimal? PromotionDiscount { get; set; } = 0.00M;
/// <summary>
/// 偏远运费,计价单位:元
/// </summary>
public decimal? RemoteFee { get; set; } = 0.00M;
/// <summary>
/// 应付金额,计价单位:元
/// </summary>
public decimal? ShouldPay { get; set; } = 0.00M;
/// <summary>
/// 超级红包,计价单位:元
/// </summary>
public decimal? SuperRedEnvelope { get; set; } = 0.00M;
/// <summary>
/// 全球购税费,计价单位:元
/// </summary>
public decimal? TaxFee { get; set; } = 0.00M;
/// <summary>
/// 退换货无忧,计价单位:元
/// </summary>
public decimal? TuiHuanHuoWuYou { get; set; } = 0.00M;
/// <summary>
/// 商家运费,计价单位:元
/// </summary>
public decimal? VenderFee { get; set; } = 0.00M;
/// <summary>
/// 限品类东券,计价单位:元
/// </summary>
public decimal? XianPinLeiDongQuan { get; set; } = 0.00M;
/// <summary>
/// 限品类京券,计价单位:元
/// </summary>
public decimal? XianPinLeiJingQuan { get; set; } = 0.00M;
/// <summary>
/// 支付营销优惠,计价单位:元
/// </summary>
public decimal? ZhiFuYingXiaoYouHui { get; set; } = 0.00M;
}
}
Loading…
Cancel
Save