Browse Source

调整订单优惠明细接口

AddValidOverTime
shanji 2 years ago
parent
commit
8b09cc2ba1
  1. 11
      BBWY.Server.API/Controllers/OrderController.cs
  2. 78
      BBWY.Server.Business/Order/OrderBusiness.cs
  3. 206
      BBWY.Server.Model/Dto/Response/Order/OrderCouponDetailResponse.cs

11
BBWY.Server.API/Controllers/OrderController.cs

@ -166,5 +166,16 @@ namespace BBWY.Server.API.Controllers
{
return orderBusiness.ExportOrderSkuList(request);
}
/// <summary>
/// 查询订单优惠明细
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public OrderCouponDetailResponse GetOrderCouponDetail([FromBody] QueryOrderCouponDetailRequest request)
{
return orderBusiness.GetOrderCouponDetail(request);
}
}
}

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

@ -1236,5 +1236,83 @@ namespace BBWY.Server.Business
}
return list;
}
public OrderCouponDetailResponse GetOrderCouponDetail(QueryOrderCouponDetailRequest request)
{
var relayAPIHost = GetPlatformRelayAPIHost(request.Platform);
var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetOrderCouponDetail", request, GetYunDingRequestHeader(), HttpMethod.Post);
if (sendResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode };
var response = JsonConvert.DeserializeObject<ApiResponse<JToken>>(sendResult.Content);
if (!response.Success)
throw new BusinessException(response.Msg) { Code = response.Code };
var jtoken = response.Data;
var itemList = new List<OrderCouponDetailGroupItemResponse>();
var couponDetailVoJToken = jtoken["jingdong_pop_order_coupondetail_responce"]["couponDetailExternal"]["couponDetailVo"];
var promotionTaskJArray = couponDetailVoJToken["promotionList"] as JArray;
itemList.AddRange(promotionTaskJArray.Select(j => new OrderCouponDetailGroupItemResponse()
{
Initiator = string.IsNullOrEmpty(j.Value<string>("promotionName")) ? "平台" : "商家",
CouponOrPromotionType = j.Value<string>("saleTypeDesc"),
PreferentialAmount = j.Value<decimal>("salePrice"),
UndertakenByMerchantAmount = 0,
UndertakenByPlatformAmount = 0
}));
var couponJArray = couponDetailVoJToken["couponList"] as JArray;
itemList.AddRange(couponJArray.Select(j => new OrderCouponDetailGroupItemResponse()
{
Initiator = string.IsNullOrEmpty(j.Value<string>("couponName")) ? "平台" : "商家",
CouponOrPromotionType = j.Value<string>("couponTypeDesc"),
PreferentialAmount = j.Value<decimal>("couponPrice"),
UndertakenByMerchantAmount = j.Value<decimal>("venderDivideMoney"),
UndertakenByPlatformAmount = j.Value<decimal>("jdDivideMoney")
}));
var groups = itemList.GroupBy(x => x.Initiator);
return new OrderCouponDetailResponse()
{
GroupList = groups.Select(g => new OrderCouponDetailGroupResponse()
{
Initiator = g.Key,
ItemList = g.ToList()
}).ToList(),
TotalPreferentialAmount = itemList.Sum(x => x.PreferentialAmount ?? 0),
TotalUndertakenByMerchantAmount = itemList.Where(x => x.Initiator == "商家").Sum(x => x.PreferentialAmount ?? 0),
TotalUndertakenByPlatformAmount = itemList.Where(x => x.Initiator == "平台").Sum(x => x.PreferentialAmount ?? 0),
TotalBalance = couponDetailVoJToken.Value<decimal?>("totalBalance"),
TotalBaseDiscount = couponDetailVoJToken.Value<decimal?>("totalBaseDiscount"),
TotalBaseFee = couponDetailVoJToken.Value<decimal?>("totalBaseFee"),
TotalCoupon = couponDetailVoJToken.Value<decimal?>("totalCoupon"),
TotalDongQuan = couponDetailVoJToken.Value<decimal?>("totalDongQuan"),
TotalExpiryGiftDiscount = couponDetailVoJToken.Value<decimal?>("totalExpiryGiftDiscount"),
TotalGlobalGeneralIncludeTax = couponDetailVoJToken.Value<decimal?>("totalGlobalGeneralIncludeTax"),
TotalGlobalGeneralTax = couponDetailVoJToken.Value<decimal?>("totalGlobalGeneralTax"),
TotalItemPrice = couponDetailVoJToken.Value<decimal?>("totalItemPrice"),
TotalJdZhiFuYouHui = couponDetailVoJToken.Value<decimal?>("totalJdZhiFuYouHui"),
TotalJingDou = couponDetailVoJToken.Value<decimal?>("totalJingDou"),
TotalJingQuan = couponDetailVoJToken.Value<decimal?>("totalJingQuan"),
TotalJingXiangLiJin = couponDetailVoJToken.Value<decimal?>("totalJingXiangLiJin"),
TotalLiJinYouHui = couponDetailVoJToken.Value<decimal?>("totalLiJinYouHui"),
TotalLuoDiPeiService = couponDetailVoJToken.Value<decimal?>("totalLuoDiPeiService"),
TotalManJian = couponDetailVoJToken.Value<decimal?>("totalManJian"),
TotalPingTaiChengDanYouHuiQuan = couponDetailVoJToken.Value<decimal?>("totalPingTaiChengDanYouHuiQuan"),
TotalPlus95 = couponDetailVoJToken.Value<decimal?>("totalPlus95"),
TotalPromotionDiscount = couponDetailVoJToken.Value<decimal?>("totalPromotionDiscount"),
TotalRemoteFee = couponDetailVoJToken.Value<decimal?>("totalRemoteFee"),
TotalShouldPay = couponDetailVoJToken.Value<decimal?>("totalShouldPay"),
TotalSuperRedEnvelope = couponDetailVoJToken.Value<decimal?>("totalSuperRedEnvelope"),
TotalTaxFee = couponDetailVoJToken.Value<decimal?>("totalTaxFee"),
TotalTuiHuanHuoWuYou = couponDetailVoJToken.Value<decimal?>("totalTuiHuanHuoWuYou"),
TotalVenderFee = couponDetailVoJToken.Value<decimal?>("totalVenderFee"),
TotalXianPinLeiDongQuan = couponDetailVoJToken.Value<decimal?>("totalXianPinLeiDongQuan"),
TotalXianPinLeiJingQuan = couponDetailVoJToken.Value<decimal?>("totalXianPinLeiJingQuan"),
TotalZhiFuYingXiaoYouHui = couponDetailVoJToken.Value<decimal?>("totalZhiFuYingXiaoYouHui")
};
}
}
}

206
BBWY.Server.Model/Dto/Response/Order/OrderCouponDetailResponse.cs

@ -0,0 +1,206 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Dto
{
public class OrderCouponDetailGroupItemResponse
{
/// <summary>
/// 发起方
/// </summary>
public string Initiator { get; set; }
/// <summary>
/// 优惠券或活动类型
/// </summary>
public string CouponOrPromotionType { get; set; }
/// <summary>
/// 优惠金额
/// </summary>
public decimal? PreferentialAmount { get; set; }
/// <summary>
/// 商家承担金额
/// </summary>
public decimal? UndertakenByMerchantAmount { get; set; }
/// <summary>
/// 平台承担金额
/// </summary>
public decimal? UndertakenByPlatformAmount { get; set; }
}
public class OrderCouponDetailGroupResponse
{
/// <summary>
/// 发起方
/// </summary>
public string Initiator { get; set; }
/// <summary>
/// 优惠明细集合
/// </summary>
public IList<OrderCouponDetailGroupItemResponse> ItemList { get; set; }
}
public class OrderCouponDetailResponse
{ /// <summary>
/// 合计优惠金额
/// </summary>
public decimal TotalPreferentialAmount { get; set; }
/// <summary>
/// 合计商家承担金额
/// </summary>
public decimal? TotalUndertakenByMerchantAmount { get; set; }
/// <summary>
/// 合计平台承担金额
/// </summary>
public decimal? TotalUndertakenByPlatformAmount { get; set; }
public IList<OrderCouponDetailGroupResponse> GroupList { get; set; }
/// <summary>
/// 合计单品金额
/// </summary>
public decimal? TotalItemPrice { get; set; }
/// <summary>
/// 合计基础优惠
/// </summary>
public decimal? TotalBaseDiscount { get; set; }
/// <summary>
/// 合计满减
/// </summary>
public decimal? TotalManJian { get; set; }
/// <summary>
/// 合计商家运费
/// </summary>
public decimal? TotalVenderFee { get; set; }
/// <summary>
/// 合计基础运费
/// </summary>
public decimal? TotalBaseFee { get; set; }
/// <summary>
/// 合计偏远运费
/// </summary>
public decimal? TotalRemoteFee { get; set; }
/// <summary>
/// 合计优惠券
/// </summary>
public decimal? TotalCoupon { get; set; }
/// <summary>
/// 合计京豆
/// </summary>
public decimal? TotalJingDou { get; set; }
/// <summary>
/// 合计余额
/// </summary>
public decimal? TotalBalance { get; set; }
/// <summary>
/// 合计超级红包
/// </summary>
public decimal? TotalSuperRedEnvelope { get; set; }
/// <summary>
/// 合计plus会员95折优惠
/// </summary>
public decimal? TotalPlus95 { get; set; }
/// <summary>
/// 合计退换货无忧
/// </summary>
public decimal? TotalTuiHuanHuoWuYou { get; set; }
/// <summary>
/// 合计全球购税费
/// </summary>
public decimal? TotalTaxFee { get; set; }
/// <summary>
/// 合计落地配服务
/// </summary>
public decimal? TotalLuoDiPeiService { get; set; }
/// <summary>
/// 合计应付金额
/// </summary>
public decimal? TotalShouldPay { get; set; }
/// <summary>
/// 合计京券
/// </summary>
public decimal? TotalJingQuan { get; set; }
/// <summary>
/// 合计东券
/// </summary>
public decimal? TotalDongQuan { get; set; }
/// <summary>
/// 合计限品类京券
/// </summary>
public decimal? TotalXianPinLeiJingQuan { get; set; }
/// <summary>
/// 合计限品类东券
/// </summary>
public decimal? TotalXianPinLeiDongQuan { get; set; }
/// <summary>
/// 合计按比例平台承担优惠券
/// </summary>
public decimal? TotalPingTaiChengDanYouHuiQuan { get; set; }
/// <summary>
/// 合计礼金优惠
/// </summary>
public decimal? TotalLiJinYouHui { get; set; }
/// <summary>
/// 合计支付营销优惠
/// </summary>
public decimal? TotalZhiFuYingXiaoYouHui { get; set; }
/// <summary>
/// 合计京东支付优惠
/// </summary>
public decimal? TotalJdZhiFuYouHui { get; set; }
/// <summary>
/// 合计全球购一般税
/// </summary>
public decimal? TotalGlobalGeneralTax { get; set; }
/// <summary>
/// 合计全球购一般包税
/// </summary>
public decimal? TotalGlobalGeneralIncludeTax { get; set; }
/// <summary>
/// 合计京享礼金
/// </summary>
public decimal? TotalJingXiangLiJin { get; set; }
/// <summary>
/// 合计跨店满减促销
/// </summary>
public decimal? TotalPromotionDiscount { get; set; }
/// <summary>
/// 合计满期赠促销
/// </summary>
public decimal? TotalExpiryGiftDiscount { get; set; }
}
}
Loading…
Cancel
Save