diff --git a/BBWY.Client/APIServices/OrderService.cs b/BBWY.Client/APIServices/OrderService.cs index fadd1f85..1021ba78 100644 --- a/BBWY.Client/APIServices/OrderService.cs +++ b/BBWY.Client/APIServices/OrderService.cs @@ -310,5 +310,24 @@ namespace BBWY.Client.APIServices endTime = endDate }, null, HttpMethod.Post); } + + /// <summary> + /// 获取订单优惠详情 + /// </summary> + /// <param name="orderId"></param> + /// <param name="shop"></param> + /// <returns></returns> + public ApiResponse<OrderCouponDetailResponse> GetOrderCouponDetail(string orderId, Shop shop) + { + return SendRequest<OrderCouponDetailResponse>(globalContext.BBYWApiHost, "api/order/GetOrderCouponDetail", new + { + orderId, + shop.ShopId, + shop.Platform, + shop.AppKey, + shop.AppSecret, + shop.AppToken + }, null, HttpMethod.Post); + } } } diff --git a/BBWY.Client/App.xaml.cs b/BBWY.Client/App.xaml.cs index 7e47ace0..57856af3 100644 --- a/BBWY.Client/App.xaml.cs +++ b/BBWY.Client/App.xaml.cs @@ -126,6 +126,7 @@ namespace BBWY.Client serviceCollection.AddTransient<PackServiceViewModel>(); serviceCollection.AddTransient<PackDetailViewModel>(); serviceCollection.AddTransient<UpdatePurchaseTaskViewModel>(); + serviceCollection.AddTransient<OrderCouponDetailViewModel>(); #region 注册拳探SDK相关类 serviceCollection.AddSingleton<QuanTanProductClient>(); #endregion diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index 2f3b9059..9f2db2d1 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -13,7 +13,7 @@ namespace BBWY.Client { ShopServiceGroupList = new List<string>(); ShopServiceGroupLowerList = new List<string>(); - ClientVersion = "10188"; + ClientVersion = "10190"; } private User user; diff --git a/BBWY.Client/Models/APIModel/Response/Order/OrderCouponDetailResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/OrderCouponDetailResponse.cs new file mode 100644 index 00000000..9b5a3165 --- /dev/null +++ b/BBWY.Client/Models/APIModel/Response/Order/OrderCouponDetailResponse.cs @@ -0,0 +1,204 @@ +using System.Collections.Generic; + +namespace BBWY.Client.Models +{ + 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; } + } +} diff --git a/BBWY.Client/ViewModels/Order/OrderCouponDetailViewModel.cs b/BBWY.Client/ViewModels/Order/OrderCouponDetailViewModel.cs new file mode 100644 index 00000000..bc09c76d --- /dev/null +++ b/BBWY.Client/ViewModels/Order/OrderCouponDetailViewModel.cs @@ -0,0 +1,42 @@ +using BBWY.Client.APIServices; +using BBWY.Client.Models; +using System.Threading.Tasks; +using System.Windows; + +namespace BBWY.Client.ViewModels +{ + public class OrderCouponDetailViewModel : BaseVM + { + private string orderId; + private OrderService orderService; + private Shop shop; + + public OrderCouponDetailViewModel(OrderService orderService) + { + this.orderService = orderService; + } + + public string OrderId { get => orderId; set { Set(ref orderId, value); } } + + public OrderCouponDetailResponse Coupon { get => coupon; set { Set(ref coupon, value); } } + + private OrderCouponDetailResponse coupon; + + public void SetData(string orderId, Shop shop) + { + this.OrderId = orderId; + this.shop = shop; + Task.Factory.StartNew(() => orderService.GetOrderCouponDetail(orderId, shop)) + .ContinueWith(t => + { + var r = t.Result; + if (!r.Success) + { + MessageBox.Show(r.Msg, "优惠券明细"); + return; + } + this.Coupon = r.Data; + }); + } + } +} diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index 3372a4c3..dcf743a0 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -135,6 +135,8 @@ namespace BBWY.Client.ViewModels public ICommand OpenSkuDetailCommand { get; set; } + public ICommand OpenOrderCouponDetailCommand { get; set; } + /// <summary> /// 当前条件利润汇总 /// </summary> @@ -214,6 +216,7 @@ namespace BBWY.Client.ViewModels //EditAfterSaleOrderRefundPurchaseAmountCommand = new RelayCommand<AfterSaleOrder>(EditAfterSaleOrderRefundPurchaseAmount); //FindAfterSaleOrderCommand = new RelayCommand<object>(FindAfterSaleOrder); OpenSkuDetailCommand = new RelayCommand<object>(OpenSkuDetail); + OpenOrderCouponDetailCommand = new RelayCommand<string>(OpenOrderCouponDetail); SearchOrderCommand.Execute(null); } /// <summary> @@ -1106,5 +1109,11 @@ namespace BBWY.Client.ViewModels } } + + private void OpenOrderCouponDetail(string orderId) + { + var w = new OrderCouponDetailWindow(orderId, globalContext.User.Shop); + w.ShowDialog(); + } } } diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs index 0aa86d5c..5eb090c3 100644 --- a/BBWY.Client/ViewModels/ViewModelLocator.cs +++ b/BBWY.Client/ViewModels/ViewModelLocator.cs @@ -20,7 +20,7 @@ namespace BBWY.Client.ViewModels public bool IsCreateOrderList { get; private set; } public bool IsCreateBatchPurchaseOrderList { get; private set; } - + @@ -385,6 +385,14 @@ namespace BBWY.Client.ViewModels } } + public OrderCouponDetailViewModel OrderCouponDetailVM + { + get + { + using var s = sp.CreateScope(); + return s.ServiceProvider.GetRequiredService<OrderCouponDetailViewModel>(); + } + } //public ShopSealBoxListViewModel ShopSealBoxListVM //{ diff --git a/BBWY.Client/Views/Order/OrderCouponDetailWindow.xaml b/BBWY.Client/Views/Order/OrderCouponDetailWindow.xaml new file mode 100644 index 00000000..3085a42e --- /dev/null +++ b/BBWY.Client/Views/Order/OrderCouponDetailWindow.xaml @@ -0,0 +1,449 @@ +<c:BWindow x:Class="BBWY.Client.Views.Order.OrderCouponDetailWindow" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:BBWY.Client.Views.Order" + mc:Ignorable="d" + xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" + Title="订单优惠明细" Height="600" Width="600" + Style="{StaticResource bwstyle}" + DataContext="{Binding OrderCouponDetailVM,Source={StaticResource Locator}}" + MinButtonVisibility="Collapsed" + MaxButtonVisibility="Collapsed"> + + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="30"/> + <RowDefinition/> + </Grid.RowDefinitions> + <Border BorderBrush="{StaticResource MainMenu.BorderBrush}" + Background="{StaticResource Border.Background}"> + <TextBlock Text="{Binding OrderId,StringFormat=\{0\}优惠明细}" Style="{StaticResource middleTextBlock}"/> + </Border> + + <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" + Grid.Row="1"> + <Grid Margin="5"> + <Grid.RowDefinitions> + <RowDefinition Height="Auto"/> + <RowDefinition Height="40"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="30"/> + <RowDefinition/> + <RowDefinition Height="30"/> + </Grid.RowDefinitions> + <Grid Background="{StaticResource Border.Background}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + </Grid.ColumnDefinitions> + + + <Border Width="1" Background="{StaticResource Border.Brush}" + HorizontalAlignment="Left"/> + <Border Height="1" Grid.ColumnSpan="5" Background="{StaticResource Border.Brush}" VerticalAlignment="Top"/> + <Border Width="1" Background="{StaticResource Border.Brush}" Grid.ColumnSpan="5" HorizontalAlignment="Right"/> + + <Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="1" HorizontalAlignment="Left"/> + <Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="2" HorizontalAlignment="Left"/> + <Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="3" HorizontalAlignment="Left"/> + <Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="4" HorizontalAlignment="Left"/> + <TextBlock Text="发起方(推测)" Style="{StaticResource middleTextBlock}"/> + <TextBlock Text="促销/优惠券" Style="{StaticResource middleTextBlock}" Grid.Column="1"/> + <TextBlock Text="优惠金额" Style="{StaticResource middleTextBlock}" Grid.Column="2"/> + <TextBlock Text="商家承担" Style="{StaticResource middleTextBlock}" Grid.Column="3"/> + <TextBlock Text="平台承担" Style="{StaticResource middleTextBlock}" Grid.Column="4"/> + </Grid> + + <ListBox x:Name="listbox_groups" + ItemsSource="{Binding Coupon.GroupList}" + ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" + Style="{StaticResource NoScrollViewListBoxStyle}" + Grid.Row="1" + BorderBrush="{StaticResource Border.Brush}" + BorderThickness="1,1,1,0"> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Width="{Binding ActualWidth,ElementName=listbox_groups,Converter={StaticResource widthConverter},ConverterParameter=2}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.8*"/> + </Grid.ColumnDefinitions> + <TextBlock Text="{Binding Initiator}" Style="{StaticResource middleTextBlock}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/> + <ListBox x:Name="listbox_couponItem" Grid.Column="1" + ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" + Style="{StaticResource NoScrollViewListBoxStyle}" + ItemsSource="{Binding ItemList}"> + <ListBox.ItemTemplate> + <DataTemplate> + <Grid Width="{Binding ActualWidth,ElementName=listbox_couponItem}" + Height="30"> + <Grid.ColumnDefinitions> + <ColumnDefinition/> + <ColumnDefinition/> + <ColumnDefinition/> + <ColumnDefinition/> + </Grid.ColumnDefinitions> + <Border Width="1" Background="{StaticResource Border.Brush}" HorizontalAlignment="Left" Margin="-1,0,0,0"/> + <Border Width="1" Background="{StaticResource Border.Brush}" HorizontalAlignment="Left" Margin="-1,0,0,0" Grid.Column="1"/> + <Border Width="1" Background="{StaticResource Border.Brush}" HorizontalAlignment="Left" Margin="-1,0,0,0" Grid.Column="2"/> + <Border Width="1" Background="{StaticResource Border.Brush}" HorizontalAlignment="Left" Grid.Column="3"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="4"/> + <TextBlock Text="{Binding CouponOrPromotionType}" Style="{StaticResource middleTextBlock}"/> + <TextBlock Text="{Binding PreferentialAmount}" Style="{StaticResource middleTextBlock}" Grid.Column="1"/> + <TextBlock Text="{Binding UndertakenByMerchantAmount}" Style="{StaticResource middleTextBlock}" Grid.Column="2"/> + <TextBlock Text="{Binding UndertakenByPlatformAmount}" Style="{StaticResource middleTextBlock}" Grid.Column="3"/> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + + <Grid Grid.Row="2" Background="{StaticResource Border.Background}" Margin="0,-0.8,0,0"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + <ColumnDefinition Width="0.2*"/> + </Grid.ColumnDefinitions> + <TextBlock Text="合计" Grid.ColumnSpan="2" Style="{StaticResource middleTextBlock}"/> + <TextBlock Text="{Binding Coupon.TotalPreferentialAmount}" Grid.Column="2" Style="{StaticResource middleTextBlock}"/> + <TextBlock Text="{Binding Coupon.TotalUndertakenByMerchantAmount}" Grid.Column="3" Style="{StaticResource middleTextBlock}"/> + <TextBlock Text="{Binding Coupon.TotalUndertakenByPlatformAmount}" Grid.Column="4" Style="{StaticResource middleTextBlock}"/> + <Border Width="1" + Background="{StaticResource Border.Brush}" + Grid.Column="2" + HorizontalAlignment="Left"/> + <Border Width="1" + Background="{StaticResource Border.Brush}" + Grid.Column="3" + HorizontalAlignment="Left"/> + <Border Width="1" + Background="{StaticResource Border.Brush}" + Grid.Column="4" + HorizontalAlignment="Left"/> + + <Border Width="1" Background="{StaticResource Border.Brush}" + HorizontalAlignment="Left"/> + <Border Height="1" Grid.ColumnSpan="5" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/> + <Border Width="1" Background="{StaticResource Border.Brush}" Grid.ColumnSpan="5" HorizontalAlignment="Right"/> + </Grid> + </Grid> + + <TextBlock Text="金额明细拆分" Grid.Row="1" VerticalAlignment="Center"/> + + <Border Grid.Row="2" Width="250" HorizontalAlignment="Left" + BorderBrush="{StaticResource Border.Brush}" BorderThickness="1,1,1,0"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition Height="30"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + <RowDefinition Height="Auto"/> + </Grid.RowDefinitions> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="0.6*"/> + <ColumnDefinition Width="0.4*"/> + </Grid.ColumnDefinitions> + + <Grid Background="{StaticResource Border.Background}" Grid.ColumnSpan="2"></Grid> + <TextBlock Text="项目" Style="{StaticResource middleTextBlock}"/> + <TextBlock Text="金额" Style="{StaticResource middleTextBlock}" Grid.Column="1"/> + <Border Width="1" Background="{StaticResource Border.Brush}" HorizontalAlignment="Right" Grid.RowSpan="30"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2"/> + + <Grid Height="30" Grid.Row="1"></Grid> + <TextBlock Text="合计单品金额" Style="{StaticResource middleTextBlock}" Grid.Row="1"/> + <TextBlock Text="{Binding Coupon.TotalItemPrice}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="1"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="1"/> + + <Grid x:Name="grid_TotalBaseDiscount" Height="30" Grid.Row="2" + Visibility="{Binding Coupon.TotalBaseDiscount,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计基础优惠" Style="{StaticResource middleTextBlock}" Grid.Row="2" + Visibility="{Binding Visibility,ElementName=grid_TotalBaseDiscount}"/> + <TextBlock Text="{Binding Coupon.TotalBaseDiscount}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="2" + Visibility="{Binding Visibility,ElementName=grid_TotalBaseDiscount}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="2" + Visibility="{Binding Visibility,ElementName=grid_TotalBaseDiscount}"/> + + + <Grid x:Name="grid_TotalManJian" Height="30" Grid.Row="3" + Visibility="{Binding Coupon.TotalManJian,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计满减" Style="{StaticResource middleTextBlock}" Grid.Row="3" + Visibility="{Binding Visibility,ElementName=grid_TotalManJian}"/> + <TextBlock Text="{Binding Coupon.TotalManJian}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="3" + Visibility="{Binding Visibility,ElementName=grid_TotalManJian}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="3" + Visibility="{Binding Visibility,ElementName=grid_TotalManJian}"/> + + <Grid x:Name="grid_TotalVenderFee" Height="30" Grid.Row="4" + Visibility="{Binding Coupon.TotalVenderFee,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计商家运费" Style="{StaticResource middleTextBlock}" Grid.Row="4" + Visibility="{Binding Visibility,ElementName=grid_TotalVenderFee}"/> + <TextBlock Text="{Binding Coupon.TotalVenderFee}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="4" + Visibility="{Binding Visibility,ElementName=grid_TotalVenderFee}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="4" + Visibility="{Binding Visibility,ElementName=grid_TotalVenderFee}"/> + + <Grid x:Name="grid_TotalBaseFee" Height="30" Grid.Row="5" + Visibility="{Binding Coupon.TotalBaseFee,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计基础运费" Style="{StaticResource middleTextBlock}" Grid.Row="5" + Visibility="{Binding Visibility,ElementName=grid_TotalBaseFee}"/> + <TextBlock Text="{Binding Coupon.TotalBaseFee}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="5" + Visibility="{Binding Visibility,ElementName=grid_TotalBaseFee}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="5" + Visibility="{Binding Visibility,ElementName=grid_TotalBaseFee}"/> + + <Grid x:Name="grid_TotalRemoteFee" Height="30" Grid.Row="6" + Visibility="{Binding Coupon.TotalRemoteFee,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计偏远运费" Style="{StaticResource middleTextBlock}" Grid.Row="6" + Visibility="{Binding Visibility,ElementName=grid_TotalRemoteFee}"/> + <TextBlock Text="{Binding Coupon.TotalRemoteFee}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="6" + Visibility="{Binding Visibility,ElementName=grid_TotalRemoteFee}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="6" + Visibility="{Binding Visibility,ElementName=grid_TotalRemoteFee}"/> + + <Grid x:Name="grid_TotalCoupon" Height="30" Grid.Row="7" + Visibility="{Binding Coupon.TotalCoupon,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计优惠券" Style="{StaticResource middleTextBlock}" Grid.Row="7" + Visibility="{Binding Visibility,ElementName=grid_TotalCoupon}"/> + <TextBlock Text="{Binding Coupon.TotalCoupon}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="7" + Visibility="{Binding Visibility,ElementName=grid_TotalCoupon}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="7" + Visibility="{Binding Visibility,ElementName=grid_TotalCoupon}"/> + + <Grid x:Name="grid_TotalJingDou" Height="30" Grid.Row="8" + Visibility="{Binding Coupon.TotalJingDou,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计京豆" Style="{StaticResource middleTextBlock}" Grid.Row="8" + Visibility="{Binding Visibility,ElementName=grid_TotalJingDou}"/> + <TextBlock Text="{Binding Coupon.TotalJingDou}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="8" + Visibility="{Binding Visibility,ElementName=grid_TotalJingDou}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="8" + Visibility="{Binding Visibility,ElementName=grid_TotalJingDou}"/> + + <Grid x:Name="grid_TotalBalance" Height="30" Grid.Row="9" + Visibility="{Binding Coupon.TotalBalance,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计余额" Style="{StaticResource middleTextBlock}" Grid.Row="9" + Visibility="{Binding Visibility,ElementName=grid_TotalBalance}"/> + <TextBlock Text="{Binding Coupon.TotalBalance}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="9" + Visibility="{Binding Visibility,ElementName=grid_TotalBalance}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="9" + Visibility="{Binding Visibility,ElementName=grid_TotalBalance}"/> + + <Grid x:Name="grid_TotalSuperRedEnvelope" Height="30" Grid.Row="10" + Visibility="{Binding Coupon.TotalSuperRedEnvelope,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计超级红包" Style="{StaticResource middleTextBlock}" Grid.Row="10" + Visibility="{Binding Visibility,ElementName=grid_TotalSuperRedEnvelope}"/> + <TextBlock Text="{Binding Coupon.TotalSuperRedEnvelope}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="10" + Visibility="{Binding Visibility,ElementName=grid_TotalSuperRedEnvelope}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="10" + Visibility="{Binding Visibility,ElementName=grid_TotalSuperRedEnvelope}"/> + + <Grid x:Name="grid_TotalPlus95" Height="30" Grid.Row="11" + Visibility="{Binding Coupon.TotalPlus95,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计plus会员95折优惠" Style="{StaticResource middleTextBlock}" Grid.Row="11" + Visibility="{Binding Visibility,ElementName=grid_TotalPlus95}"/> + <TextBlock Text="{Binding Coupon.TotalPlus95}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="11" + Visibility="{Binding Visibility,ElementName=grid_TotalPlus95}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="11" + Visibility="{Binding Visibility,ElementName=grid_TotalPlus95}"/> + + <Grid x:Name="grid_TotalTuiHuanHuoWuYou" Height="30" Grid.Row="12" + Visibility="{Binding Coupon.TotalTuiHuanHuoWuYou,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计退换货无忧" Style="{StaticResource middleTextBlock}" Grid.Row="12" + Visibility="{Binding Visibility,ElementName=grid_TotalTuiHuanHuoWuYou}"/> + <TextBlock Text="{Binding Coupon.TotalTuiHuanHuoWuYou}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="12" + Visibility="{Binding Visibility,ElementName=grid_TotalTuiHuanHuoWuYou}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="12" + Visibility="{Binding Visibility,ElementName=grid_TotalTuiHuanHuoWuYou}"/> + + <Grid x:Name="grid_TotalTaxFee" Height="30" Grid.Row="13" + Visibility="{Binding Coupon.TotalTaxFee,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计全球购税费" Style="{StaticResource middleTextBlock}" Grid.Row="13" + Visibility="{Binding Visibility,ElementName=grid_TotalTaxFee}"/> + <TextBlock Text="{Binding Coupon.TotalTaxFee}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="13" + Visibility="{Binding Visibility,ElementName=grid_TotalTaxFee}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="13" + Visibility="{Binding Visibility,ElementName=grid_TotalTaxFee}"/> + + <Grid x:Name="grid_TotalLuoDiPeiService" Height="30" Grid.Row="14" + Visibility="{Binding Coupon.TotalLuoDiPeiService,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计落地配服务" Style="{StaticResource middleTextBlock}" Grid.Row="14" + Visibility="{Binding Visibility,ElementName=grid_TotalLuoDiPeiService}"/> + <TextBlock Text="{Binding Coupon.TotalLuoDiPeiService}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="14" + Visibility="{Binding Visibility,ElementName=grid_TotalLuoDiPeiService}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="14" + Visibility="{Binding Visibility,ElementName=grid_TotalLuoDiPeiService}"/> + + <Grid x:Name="grid_TotalShouldPay" Height="30" Grid.Row="15" + Visibility="{Binding Coupon.TotalShouldPay,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计应付金额" Style="{StaticResource middleTextBlock}" Grid.Row="15" + Visibility="{Binding Visibility,ElementName=grid_TotalShouldPay}"/> + <TextBlock Text="{Binding Coupon.TotalShouldPay}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="15" + Visibility="{Binding Visibility,ElementName=grid_TotalShouldPay}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="15" + Visibility="{Binding Visibility,ElementName=grid_TotalShouldPay}"/> + + <Grid x:Name="grid_TotalJingQuan" Height="30" Grid.Row="16" + Visibility="{Binding Coupon.TotalJingQuan,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计京券" Style="{StaticResource middleTextBlock}" Grid.Row="16" + Visibility="{Binding Visibility,ElementName=grid_TotalJingQuan}"/> + <TextBlock Text="{Binding Coupon.TotalJingQuan}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="16" + Visibility="{Binding Visibility,ElementName=grid_TotalJingQuan}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="16" + Visibility="{Binding Visibility,ElementName=grid_TotalJingQuan}"/> + + <Grid x:Name="grid_TotalDongQuan" Height="30" Grid.Row="17" + Visibility="{Binding Coupon.TotalDongQuan,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计东券" Style="{StaticResource middleTextBlock}" Grid.Row="17" + Visibility="{Binding Visibility,ElementName=grid_TotalDongQuan}"/> + <TextBlock Text="{Binding Coupon.TotalDongQuan}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="17" + Visibility="{Binding Visibility,ElementName=grid_TotalDongQuan}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="17" + Visibility="{Binding Visibility,ElementName=grid_TotalDongQuan}"/> + + <Grid x:Name="grid_TotalXianPinLeiJingQuan" Height="30" Grid.Row="18" + Visibility="{Binding Coupon.TotalXianPinLeiJingQuan,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计限品类京券" Style="{StaticResource middleTextBlock}" Grid.Row="18" + Visibility="{Binding Visibility,ElementName=grid_TotalXianPinLeiJingQuan}"/> + <TextBlock Text="{Binding Coupon.TotalXianPinLeiJingQuan}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="18" + Visibility="{Binding Visibility,ElementName=grid_TotalXianPinLeiJingQuan}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="18" + Visibility="{Binding Visibility,ElementName=grid_TotalXianPinLeiJingQuan}"/> + + <Grid x:Name="grid_TotalXianPinLeiDongQuan" Height="30" Grid.Row="19" + Visibility="{Binding Coupon.TotalXianPinLeiDongQuan,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计限品类东券" Style="{StaticResource middleTextBlock}" Grid.Row="19" + Visibility="{Binding Visibility,ElementName=grid_TotalXianPinLeiDongQuan}"/> + <TextBlock Text="{Binding Coupon.TotalXianPinLeiDongQuan}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="19" + Visibility="{Binding Visibility,ElementName=grid_TotalXianPinLeiDongQuan}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="19" + Visibility="{Binding Visibility,ElementName=grid_TotalXianPinLeiDongQuan}"/> + + <Grid x:Name="grid_TotalPingTaiChengDanYouHuiQuan" Height="30" Grid.Row="20" + Visibility="{Binding Coupon.TotalPingTaiChengDanYouHuiQuan,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计按比例平台承担优惠券" Style="{StaticResource middleTextBlock}" Grid.Row="20" + Visibility="{Binding Visibility,ElementName=grid_TotalPingTaiChengDanYouHuiQuan}"/> + <TextBlock Text="{Binding Coupon.TotalPingTaiChengDanYouHuiQuan}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="20" + Visibility="{Binding Visibility,ElementName=grid_TotalPingTaiChengDanYouHuiQuan}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="20" + Visibility="{Binding Visibility,ElementName=grid_TotalPingTaiChengDanYouHuiQuan}"/> + + <Grid x:Name="grid_TotalLiJinYouHui" Height="30" Grid.Row="21" + Visibility="{Binding Coupon.TotalLiJinYouHui,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计礼金优惠" Style="{StaticResource middleTextBlock}" Grid.Row="21" + Visibility="{Binding Visibility,ElementName=grid_TotalLiJinYouHui}"/> + <TextBlock Text="{Binding Coupon.TotalLiJinYouHui}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="21" + Visibility="{Binding Visibility,ElementName=grid_TotalLiJinYouHui}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="21" + Visibility="{Binding Visibility,ElementName=grid_TotalLiJinYouHui}"/> + + <Grid x:Name="grid_TotalZhiFuYingXiaoYouHui" Height="30" Grid.Row="22" + Visibility="{Binding Coupon.TotalZhiFuYingXiaoYouHui,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计支付营销优惠" Style="{StaticResource middleTextBlock}" Grid.Row="22" + Visibility="{Binding Visibility,ElementName=grid_TotalZhiFuYingXiaoYouHui}"/> + <TextBlock Text="{Binding Coupon.TotalZhiFuYingXiaoYouHui}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="22" + Visibility="{Binding Visibility,ElementName=grid_TotalZhiFuYingXiaoYouHui}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="22" + Visibility="{Binding Visibility,ElementName=grid_TotalZhiFuYingXiaoYouHui}"/> + + <Grid x:Name="grid_TotalJdZhiFuYouHui" Height="30" Grid.Row="23" + Visibility="{Binding Coupon.TotalJdZhiFuYouHui,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计京东支付优惠" Style="{StaticResource middleTextBlock}" Grid.Row="23" + Visibility="{Binding Visibility,ElementName=grid_TotalJdZhiFuYouHui}"/> + <TextBlock Text="{Binding Coupon.TotalJdZhiFuYouHui}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="23" + Visibility="{Binding Visibility,ElementName=grid_TotalJdZhiFuYouHui}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="23" + Visibility="{Binding Visibility,ElementName=grid_TotalJdZhiFuYouHui}"/> + + <Grid x:Name="grid_TotalGlobalGeneralTax" Height="30" Grid.Row="24" + Visibility="{Binding Coupon.TotalGlobalGeneralTax,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计全球购一般税" Style="{StaticResource middleTextBlock}" Grid.Row="24" + Visibility="{Binding Visibility,ElementName=grid_TotalGlobalGeneralTax}"/> + <TextBlock Text="{Binding Coupon.TotalGlobalGeneralTax}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="24" + Visibility="{Binding Visibility,ElementName=grid_TotalGlobalGeneralTax}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="24" + Visibility="{Binding Visibility,ElementName=grid_TotalGlobalGeneralTax}"/> + + <Grid x:Name="grid_TotalGlobalGeneralIncludeTax" Height="30" Grid.Row="25" + Visibility="{Binding Coupon.TotalGlobalGeneralIncludeTax,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计全球购一般包税" Style="{StaticResource middleTextBlock}" Grid.Row="25" + Visibility="{Binding Visibility,ElementName=grid_TotalGlobalGeneralIncludeTax}"/> + <TextBlock Text="{Binding Coupon.TotalGlobalGeneralIncludeTax}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="25" + Visibility="{Binding Visibility,ElementName=grid_TotalGlobalGeneralIncludeTax}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="25" + Visibility="{Binding Visibility,ElementName=grid_TotalGlobalGeneralIncludeTax}"/> + + <Grid x:Name="grid_TotalJingXiangLiJin" Height="30" Grid.Row="26" + Visibility="{Binding Coupon.TotalJingXiangLiJin,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计京享礼金" Style="{StaticResource middleTextBlock}" Grid.Row="26" + Visibility="{Binding Visibility,ElementName=grid_TotalJingXiangLiJin}"/> + <TextBlock Text="{Binding Coupon.TotalJingXiangLiJin}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="26" + Visibility="{Binding Visibility,ElementName=grid_TotalJingXiangLiJin}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="26" + Visibility="{Binding Visibility,ElementName=grid_TotalJingXiangLiJin}"/> + + <Grid x:Name="grid_TotalPromotionDiscount" Height="30" Grid.Row="27" + Visibility="{Binding Coupon.TotalPromotionDiscount,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计跨店满减促销" Style="{StaticResource middleTextBlock}" Grid.Row="27" + Visibility="{Binding Visibility,ElementName=grid_TotalPromotionDiscount}"/> + <TextBlock Text="{Binding Coupon.TotalPromotionDiscount}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="27" + Visibility="{Binding Visibility,ElementName=grid_TotalPromotionDiscount}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="27" + Visibility="{Binding Visibility,ElementName=grid_TotalPromotionDiscount}"/> + + <Grid x:Name="grid_TotalExpiryGiftDiscount" Height="30" Grid.Row="28" + Visibility="{Binding Coupon.TotalExpiryGiftDiscount,Converter={StaticResource objConverter},ConverterParameter=0|0.0:Collapsed:Visible}"></Grid> + <TextBlock Text="合计满期赠促销" Style="{StaticResource middleTextBlock}" Grid.Row="28" + Visibility="{Binding Visibility,ElementName=grid_TotalExpiryGiftDiscount}"/> + <TextBlock Text="{Binding Coupon.TotalExpiryGiftDiscount}" Style="{StaticResource middleTextBlock}" Grid.Column="1" Grid.Row="28" + Visibility="{Binding Visibility,ElementName=grid_TotalExpiryGiftDiscount}"/> + <Border Height="1" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom" Grid.ColumnSpan="2" Grid.Row="28" + Visibility="{Binding Visibility,ElementName=grid_TotalExpiryGiftDiscount}"/> + + </Grid> + </Border> + + </Grid> + </ScrollViewer> + + </Grid> +</c:BWindow> diff --git a/BBWY.Client/Views/Order/OrderCouponDetailWindow.xaml.cs b/BBWY.Client/Views/Order/OrderCouponDetailWindow.xaml.cs new file mode 100644 index 00000000..d7f89bd8 --- /dev/null +++ b/BBWY.Client/Views/Order/OrderCouponDetailWindow.xaml.cs @@ -0,0 +1,18 @@ +using BBWY.Client.Models; +using BBWY.Client.ViewModels; +using BBWY.Controls; + +namespace BBWY.Client.Views.Order +{ + /// <summary> + /// OrderCouponDetailWindow.xaml 的交互逻辑 + /// </summary> + public partial class OrderCouponDetailWindow : BWindow + { + public OrderCouponDetailWindow(string orderId, Shop shop) + { + InitializeComponent(); + (this.DataContext as OrderCouponDetailViewModel).SetData(orderId, shop); + } + } +} diff --git a/BBWY.Client/Views/Order/OrderListControl.xaml b/BBWY.Client/Views/Order/OrderListControl.xaml index 3903100b..a7c5864f 100644 --- a/BBWY.Client/Views/Order/OrderListControl.xaml +++ b/BBWY.Client/Views/Order/OrderListControl.xaml @@ -365,8 +365,10 @@ <Run Text="优惠金额"/> <Run Text="{Binding PreferentialAmount}"/> </TextBlock> + <c:BButton Content="明细" Style="{StaticResource LinkButton}" Margin="5,0,0,0" + Command="{Binding DataContext.OpenOrderCouponDetailCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" CommandParameter="{Binding Id}"/> - <Path Style="{StaticResource path_question}" Width="14" Margin="5,0,0,0" Fill="{StaticResource Text.Pink}" ToolTipService.InitialShowDelay="0"> + <!--<Path Style="{StaticResource path_question}" Width="14" Margin="5,0,0,0" Fill="{StaticResource Text.Pink}" ToolTipService.InitialShowDelay="0"> <Path.ToolTip> <ToolTip Style="{StaticResource OrderCouponToolipStyle}"> <ListBox ItemsSource="{Binding OrderCouponList}" @@ -382,7 +384,7 @@ </ListBox> </ToolTip> </Path.ToolTip> - </Path> + </Path>--> </StackPanel> <StackPanel x:Name="sp_purchaseAmount" Orientation="Horizontal"> diff --git a/BBWY.Server.API/Controllers/OrderController.cs b/BBWY.Server.API/Controllers/OrderController.cs index 5d9bdb61..63efd0a8 100644 --- a/BBWY.Server.API/Controllers/OrderController.cs +++ b/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); + } } } diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs index ee48e9b9..ef0bafa0 100644 --- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs +++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs @@ -610,7 +610,7 @@ namespace BBWY.Server.Business MainProductSkuInStore = mainProductSkuInStore, OuterId = dbPromotionTask.OuterId - }, GetYunDingRequestHeader(), HttpMethod.Post); + }, GetYunDingRequestHeader(), HttpMethod.Post, timeOutSeconds: 600); if (httpApiResult.StatusCode != System.Net.HttpStatusCode.OK) throw new BusinessException(httpApiResult.Content); diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 862ca2cc..b015187e 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -1236,5 +1236,85 @@ 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 = j.Value<decimal>("salePrice"), + 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<bool>("priceDivide") == true ? + j.Value<decimal>("venderDivideMoney") : + j.Value<decimal>("couponPrice"), + 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.Sum(x => x.UndertakenByMerchantAmount ?? 0), + TotalUndertakenByPlatformAmount = itemList.Sum(x => x.UndertakenByPlatformAmount ?? 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") + }; + } } } diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index 0601bb99..d89185c5 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -1174,22 +1174,6 @@ namespace BBWY.Server.Business } #endregion - //#region sku改名 - //{ - // stepText = "sku改名"; - // var req = new WareWriteUpdateWareSaleAttrvalueAliasRequest() - // { - // wareId = wareId, - // props = updateSkuTitleParamList - // }; - // var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); - // if (res.Json == null) - // res.Json = JObject.Parse(res.Body); - // if (res.IsError) - // throw new BusinessException($"sku改名失败-{(string.IsNullOrEmpty(res.ErrorMsg) ? res.ErrMsg : res.ErrorMsg)}"); - //} - //#endregion - #region sku修改细节图 stepText = "sku修改细节图"; foreach (var imageWriteUpdateRequest in imageWriteUpdateRequestList) @@ -1203,6 +1187,7 @@ namespace BBWY.Server.Business if (request.MainProductSkuInStore) { stepText = "设置sku全国仓库存"; + Thread.Sleep(60 * 1000); try { foreach (var giftSkuId in giftSkuIdList) @@ -1229,6 +1214,7 @@ namespace BBWY.Server.Business #region 查询上架的赠品 stepText = "查询上架的赠品SKU"; + Thread.Sleep(60 * 1000); searchProductSkuRequest.Sku = string.Join(",", giftSkuIdList); searchProductSkuRequest.CheckStep = "上架的赠品"; try @@ -1256,6 +1242,7 @@ namespace BBWY.Server.Business { stepText = "创建活动"; + Thread.Sleep(60 * 1000); var req = new SellerPromotionAddRequest(); req.name = request.ActivityName; req.type = 4; //赠品促销 @@ -1661,5 +1648,19 @@ namespace BBWY.Server.Business whNo = x.Value<string>("whNo") }).ToList(); } + + public override JToken GetOrderCouponDetail(QueryOrderCouponDetailRequest request) + { + var jdClient = GetJdClient(request.AppKey, request.AppSecret); + var req = new PopOrderCoupondetailRequest(); + + req.orderId = Convert.ToInt64(request.OrderId); + + + var res = jdClient.Execute(req, request.AppToken, DateTime.Now.ToLocalTime()); + if (res.Json == null) + res.Json = JObject.Parse(res.Body); + return res.Json; + } } } diff --git a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs index 3cf2d1f6..8728dfcb 100644 --- a/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/PlatformSDKBusiness.cs @@ -255,5 +255,16 @@ namespace BBWY.Server.Business { throw new NotImplementedException(); } + + /// <summary> + /// 获取订单优惠明细 + /// </summary> + /// <param name="request"></param> + /// <returns></returns> + /// <exception cref="NotImplementedException"></exception> + public virtual JToken GetOrderCouponDetail(QueryOrderCouponDetailRequest request) + { + throw new NotImplementedException(); + } } } diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 87876c91..5a71bf40 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -380,7 +380,7 @@ namespace BBWY.Server.Business } else { - preferentialAmount = dbOrder.PreferentialAmount; + //preferentialAmount = dbOrder.PreferentialAmount; if (storageType != null && dbOrder.StorageType != storageType) dbOrder.StorageType = storageType; @@ -421,18 +421,19 @@ namespace BBWY.Server.Business #endregion #region 订单优惠 - if (!dbOrderCouponList.Any(oc => oc.OrderId == orderId)) + + var orderCouponJArray = (JArray)orderJToken["couponDetailList"]; + if (orderCouponJArray.HasValues) { - var orderCouponJArray = (JArray)orderJToken["couponDetailList"]; - if (orderCouponJArray.HasValues) + foreach (var orderCouponJToken in orderCouponJArray) { - foreach (var orderCouponJToken in orderCouponJArray) + var couponType = orderCouponJToken.Value<string>("couponType"); + if (string.IsNullOrEmpty(couponType)) + continue; + //dbOrder.PreferentialAmount += orderCouponJToken.Value<decimal>("couponPrice"); + preferentialAmount += orderCouponJToken.Value<decimal>("couponPrice"); + if (!dbOrderCouponList.Any(oc => oc.OrderId == orderId)) { - var couponType = orderCouponJToken.Value<string>("couponType"); - if (string.IsNullOrEmpty(couponType)) - continue; - //dbOrder.PreferentialAmount += orderCouponJToken.Value<decimal>("couponPrice"); - preferentialAmount += orderCouponJToken.Value<decimal>("couponPrice"); insertOrderCouponList.Add(new OrderCoupon() { Id = idGenerator.NewLong(), @@ -620,7 +621,7 @@ namespace BBWY.Server.Business (orderSellerPrice > 0M && dbOrder.IsGift) || orderTotalPrice != dbOrder.OrderTotalPrice || storeOrder != dbOrder.StoreOrder || - //preferentialAmount != dbOrder.PreferentialAmount || + preferentialAmount != dbOrder.PreferentialAmount || storeId != dbOrder.StoreId) { var updateSql = fsql.Update<Order>(orderId).SetIf(orderState != null && orderState != dbOrder.OrderState, o => o.OrderState, orderState) @@ -637,7 +638,7 @@ namespace BBWY.Server.Business .SetIf(orderSellerPrice > 0M && dbOrder.IsGift == true, 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(preferentialAmount != dbOrder.PreferentialAmount, o => o.PreferentialAmount, preferentialAmount) .SetIf(storeId != dbOrder.StoreId, o => o.StoreId, storeId); updateOrderList.Add(updateSql); } diff --git a/BBWY.Server.Model/Dto/Request/JD/QueryOrderCouponDetailRequest.cs b/BBWY.Server.Model/Dto/Request/JD/QueryOrderCouponDetailRequest.cs new file mode 100644 index 00000000..acf8e328 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/JD/QueryOrderCouponDetailRequest.cs @@ -0,0 +1,7 @@ +namespace BBWY.Server.Model.Dto +{ + public class QueryOrderCouponDetailRequest : PlatformRequest + { + public string OrderId { get; set; } + } +} diff --git a/BBWY.Server.Model/Dto/Response/Order/OrderCouponDetailResponse.cs b/BBWY.Server.Model/Dto/Response/Order/OrderCouponDetailResponse.cs new file mode 100644 index 00000000..708b38fc --- /dev/null +++ b/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; } + } +} diff --git a/JD.API/Controllers/PlatformSDKController.cs b/JD.API/Controllers/PlatformSDKController.cs index 797b044f..a635a9ac 100644 --- a/JD.API/Controllers/PlatformSDKController.cs +++ b/JD.API/Controllers/PlatformSDKController.cs @@ -422,5 +422,16 @@ namespace JD.API.API.Controllers { return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetJDSupplierDetail(request); } + + /// <summary> + /// 获取优惠数据明细 + /// </summary> + /// <param name="request"></param> + /// <returns></returns> + [HttpPost] + public virtual JToken GetOrderCouponDetail([FromBody] QueryOrderCouponDetailRequest request) + { + return platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform).GetOrderCouponDetail(request); + } } }