Browse Source

1

updatebug
shanji 2 years ago
parent
commit
8984cadb7d
  1. 1
      BBWYB.Client/App.xaml.cs
  2. 49
      BBWYB.Client/Models/APIModel/Response/Order/OrderSkuResponse.cs
  3. 30
      BBWYB.Client/Models/Order/OrderSkuEditPrice.cs
  4. 72
      BBWYB.Client/ViewModels/Order/EditPriceViewModel.cs
  5. 11
      BBWYB.Client/ViewModels/ViewModelLocator.cs
  6. 63
      BBWYB.Client/Views/Order/EditPrice.xaml
  7. 16
      BBWYB.Client/Views/Order/EditPrice.xaml.cs
  8. 59
      BBWYB.Server.Business/Order/OrderBusiness.cs
  9. 3
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  10. 5
      SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs
  11. 22
      SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs
  12. 35
      SDKAdapter/OperationPlatform/Models/Request/Order/OP_EditPriceRequest.cs
  13. 22
      SDKAdapter/OperationPlatform/Models/Response/Order/OP_EditPriceResponse.cs
  14. 4
      SDKAdapter/OperationPlatform/Models/Response/Order/OP_OrderProductSkuResponse.cs

1
BBWYB.Client/App.xaml.cs

@ -75,6 +75,7 @@ namespace BBWYB.Client
serviceCollection.BatchRegisterServices(new Assembly[] { Assembly.Load("BBWYB.Client") }, typeof(IDenpendency));
serviceCollection.AddTransient<ChoosePurchaseSchemeViewModel>();
serviceCollection.AddTransient<OnlinePurchaseViewModel>();
serviceCollection.AddTransient<EditPriceViewModel>();
serviceCollection.AddMapper(new MappingProfile());
ServiceProvider = serviceCollection.BuildServiceProvider();
base.OnStartup(e);

49
BBWYB.Client/Models/APIModel/Response/Order/OrderSkuResponse.cs

@ -1,41 +1,42 @@
using System;
using CommunityToolkit.Mvvm.ComponentModel;
using System;
namespace BBWYB.Client.Models
{
public class OrderSkuResponse
public class OrderSkuResponse : ObservableObject
{
public long Id { get; set; }
public long Id { get; set; }
public DateTime? CreateTime { get; set; }
public DateTime? CreateTime { get; set; }
/// <summary>
/// 销售数量
/// </summary>
public int ItemTotal { get; set; }
/// <summary>
/// 销售数量
/// </summary>
public int ItemTotal { get; set; }
/// <summary>
/// Logo
/// </summary>
/// <summary>
/// Logo
/// </summary>
public string Logo { get; set; }
public string Logo { get; set; }
public string OrderId { get; set; }
public string OrderId { get; set; }
/// <summary>
/// 销售单价
/// </summary>
public decimal? Price { get; set; }
/// <summary>
/// 销售单价
/// </summary>
public decimal? Price { get; set; }
public string ProductId { get; set; }
public string ProductId { get; set; }
public string SkuId { get; set; }
public string SkuId { get; set; }
/// <summary>
/// Sku标题
/// </summary>
public string Title { get; set; }
}
/// <summary>
/// Sku标题
/// </summary>
public string Title { get; set; }
}
}

30
BBWYB.Client/Models/Order/OrderSkuEditPrice.cs

@ -0,0 +1,30 @@
using System;
namespace BBWYB.Client.Models
{
public class OrderSkuEditPrice : OrderSku
{
private decimal newPrice;
private decimal freightAmount;
private bool isResponseFreightChanged;
public decimal NewPrice { get => newPrice; set { SetProperty(ref newPrice, value); } }
public decimal FreightAmount
{
get => freightAmount;
set
{
if (SetProperty(ref freightAmount, value))
{
IsResponseFreightChanged = false;
OnFreightChanged?.Invoke();
}
}
}
public bool IsResponseFreightChanged { get => isResponseFreightChanged; set { SetProperty(ref isResponseFreightChanged, value); } }
public Action OnFreightChanged { get; set; }
}
}

72
BBWYB.Client/ViewModels/Order/EditPriceViewModel.cs

@ -0,0 +1,72 @@
using BBWYB.Client.Models;
using CommunityToolkit.Mvvm.Input;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
public class EditPriceViewModel : BaseVM
{
public IList<OrderSkuEditPrice> OrderSkuList { get; set; }
private Order order;
private decimal freightAmount;
private bool isResponseFreightChanged;
public ICommand DistributFreightCommand { get; set; }
public decimal FreightAmount { get => freightAmount; set { SetProperty(ref freightAmount, value); } }
public EditPriceViewModel()
{
OrderSkuList = new ObservableCollection<OrderSkuEditPrice>();
DistributFreightCommand = new RelayCommand(DistributFreight);
}
private void SetData(Order order)
{
this.order = order;
foreach (var orderSku in order.ItemList)
{
OrderSkuList.Add(new OrderSkuEditPrice()
{
Id = orderSku.Id,
Logo = orderSku.Logo,
Title = orderSku.Title,
SkuId = orderSku.SkuId,
Price = orderSku.Price,
NewPrice = orderSku.Price ?? 0,
ItemTotal = orderSku.ItemTotal,
OnFreightChanged = OnFreightChanged
});
}
}
private void DistributFreight()
{
if (FreightAmount <= 0)
{
MessageBox.Show("运费不正确", "提示");
return;
}
isResponseFreightChanged = false;
var totalItemCount = OrderSkuList.Sum(s => s.ItemTotal);
foreach (var orderSku in OrderSkuList)
{
var quantityRatio = 1M * orderSku.ItemTotal / totalItemCount;
var currentFreightAmount = FreightAmount * quantityRatio;
orderSku.FreightAmount = currentFreightAmount;
orderSku.IsResponseFreightChanged = true;
}
isResponseFreightChanged = true;
}
private void OnFreightChanged()
{
if (!isResponseFreightChanged)
return;
}
}
}

11
BBWYB.Client/ViewModels/ViewModelLocator.cs

@ -97,5 +97,16 @@ namespace BBWYB.Client.ViewModels
}
}
}
public EditPriceViewModel EditPrice
{
get
{
using (var s = sp.CreateScope())
{
return s.ServiceProvider.GetRequiredService<EditPriceViewModel>();
}
}
}
}
}

63
BBWYB.Client/Views/Order/EditPrice.xaml

@ -0,0 +1,63 @@
<c:BWindow x:Class="BBWYB.Client.Views.Order.EditPrice"
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:BBWYB.Client.Views.Order"
xmlns:c="clr-namespace:SJ.Controls;assembly=SJ.Controls"
mc:Ignorable="d"
Title="修改价格" Height="400" Width="600"
Style="{StaticResource bwstyle}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
DataContext="{Binding EditPrice,Source={StaticResource Locator}}"
SnapsToDevicePixels="True"
UseLayoutRounding="True">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="40"/>
<RowDefinition Height="30"/>
<RowDefinition/>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}"
Background="{StaticResource Border.Background}">
<TextBlock Text="改价" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="5,0">
<TextBlock Text="订单采购运费" VerticalAlignment="Center"/>
<c:BTextBox Width="100" Margin="5,0"
Text="{Binding FreightAmount}"/>
<c:BButton Content="等比均分" Width="80"/>
</StackPanel>
<Border BorderBrush="{StaticResource Border.Brush}"
BorderThickness="1,1,1,0"
Grid.Row="2"
Background="{StaticResource Border.Background}"
Margin="5,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<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"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/>
</Grid>
</Border>
<c:BButton Content="保存" Grid.Row="4" HorizontalAlignment="Right" Margin="0,0,5,0" Width="80"/>
</Grid>
</c:BWindow>

16
BBWYB.Client/Views/Order/EditPrice.xaml.cs

@ -0,0 +1,16 @@
using BBWYB.Client.Models;
using SJ.Controls;
namespace BBWYB.Client.Views.Order
{
/// <summary>
/// EditPrice.xaml 的交互逻辑
/// </summary>
public partial class EditPrice : BWindow
{
public EditPrice(Models.Order order)
{
InitializeComponent();
}
}
}

59
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -232,5 +232,64 @@ namespace BBWYB.Server.Business
new Dictionary<string, string>() { { "Authorization", $"{mdsToken}" } },
HttpMethod.Post);
}
public void EditPrice(OP_EditPriceRequest request)
{
var client = opPlatformClientFactory.GetClient((AdapterEnums.PlatformType)request.Platform);
client.EditPrice(new OP_EditPriceRequest()
{
AppKey = request.AppKey,
AppSecret = request.AppSecret,
AppToken = request.AppToken,
OrderId = request.OrderId,
EditItems = request.EditItems
});
var orderListResponse = client.GetOrderList(new OP_QueryOrderRequest()
{
AppKey = request.AppKey,
AppSecret = request.AppSecret,
AppToken = request.AppToken,
OrderId = request.OrderId,
PageIndex = 1,
PageSize = 1,
SortTimeField = AdapterEnums.SortTimeField.Modify,
SortType = AdapterEnums.SortType.Desc
});
var order = orderListResponse.Items.FirstOrDefault();
var orderCost = fsql.Select<OrderCost>(request.OrderId).ToOne();
//orderCost.Profit = dbOrder.OrderTotalPrice -
// orderCost.PurchaseAmount -
// orderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount
IList<IUpdate<OrderSku>> updates_orderSku = new List<IUpdate<OrderSku>>();
foreach (var orderSku in order.OrderSkuList)
{
updates_orderSku.Add(fsql.Update<OrderSku>(orderSku.Id).Set(osku => osku.Price, orderSku.SkuPrice));
}
fsql.Transaction(() =>
{
fsql.Update<Order>(request.OrderId).Set(o => o.OrderTotalPrice, order.OrderTotalAmount)
.Set(o => o.OrderSellerPrice, order.OrderProductAmount)
.Set(o => o.FreightPrice, order.FreightAmount)
.ExecuteAffrows();
if (orderCost != null)
fsql.Update<OrderCost>(request.OrderId).Set(oc => oc.Profit, order.OrderTotalAmount - orderCost.PurchaseAmount - orderCost.DeliveryExpressFreight)
.ExecuteAffrows();
if (updates_orderSku.Count() > 0)
{
foreach (var update in updates_orderSku)
update.ExecuteAffrows();
}
});
#region 通知C端
#endregion
}
}
}

3
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -293,8 +293,7 @@ namespace BBWYB.Server.Business
PurchaseAmount = totalPurchaseAmount
};
//orderCost.PlatformCommissionAmount = dbOrder.OrderSellerPrice * orderCost.PlatformCommissionRatio;
orderCost.Profit = dbOrder.OrderSellerPrice +
dbOrder.FreightPrice -
orderCost.Profit = dbOrder.OrderTotalPrice -
orderCost.PurchaseAmount -
orderCost.DeliveryExpressFreight; // -orderCost.PlatformCommissionAmount
if (!isRepurchase)

5
SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs

@ -46,5 +46,10 @@ namespace SDKAdapter.OperationPlatform.Client
{
throw new NotImplementedException();
}
public virtual void EditPrice(OP_EditPriceRequest request)
{
throw new NotImplementedException();
}
}
}

22
SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs

@ -155,7 +155,9 @@ namespace SDKAdapter.OperationPlatform.Client
Quantity = qtosku.Quantity,
SkuLogo = qtosku.SkuInfo.Image,
SkuPrice = qtosku.SkuInfo.Price,
SkuTitle = qtosku.SkuInfo.Title
SkuTitle = qtosku.SkuInfo.Title,
ProductAmount = qtosku.ProductPrice,
FreightAmount = qtosku.PostagePrice
}).ToList(),
DeliveryResponse = new OP_OrderDeliveryResponse()
{
@ -199,5 +201,23 @@ namespace SDKAdapter.OperationPlatform.Client
if (qtResponse.Status != 200)
throw new Exception(qtResponse.Message);
}
public override void EditPrice(OP_EditPriceRequest request)
{
var qtResponse = supplier_OrderClient.EditPrice(new QuanTan_Supplier_EditPriceRequest()
{
editAdmin = request.AppToken,
orderId = request.OrderId,
orderProduct = request.EditItems.Select(item => new QuanTan_Supplier_EditPriceSkuRequest()
{
orderProductId = item.OrderSkuId,
postagePrice = item.Freight,
price = item.Price
}).ToList()
}, request.AppKey, request.AppSecret);
if (qtResponse.Status != 200)
throw new Exception(qtResponse.Message);
}
}
}

35
SDKAdapter/OperationPlatform/Models/Request/Order/OP_EditPriceRequest.cs

@ -0,0 +1,35 @@
namespace SDKAdapter.OperationPlatform.Models
{
public class OP_EditPriceRequest : BasePlatformRequest
{
public string OrderId { get; set; }
public IList<OP_EditPriceSkuRequest> EditItems { get; set; }
}
public class OP_EditPriceSkuRequest
{
/// <summary>
/// 订单Sku商品Id
/// </summary>
public string OrderSkuId { get; set; }
public string SkuId { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 数量
/// </summary>
public int Quantity { get; set; }
/// <summary>
/// 运费
/// </summary>
public decimal Freight { get; set; }
}
}

22
SDKAdapter/OperationPlatform/Models/Response/Order/OP_EditPriceResponse.cs

@ -0,0 +1,22 @@
namespace SDKAdapter.OperationPlatform.Models
{
public class OP_EditPriceResponse
{
public string OrderId { get; set; }
/// <summary>
/// 订单总价
/// </summary>
public decimal OrderTotalAmount { get; set; }
/// <summary>
/// 订单货款
/// </summary>
public decimal OrderProductAmount { get; set; }
/// <summary>
/// 运费
/// </summary>
public decimal FreightAmount { get; set; }
}
}

4
SDKAdapter/OperationPlatform/Models/Response/Order/OP_OrderProductSkuResponse.cs

@ -31,5 +31,9 @@
/// 购买数量
/// </summary>
public int Quantity { get; set; }
public decimal ProductAmount { get; set; }
public decimal FreightAmount { get; set; }
}
}

Loading…
Cancel
Save