Browse Source

预览订单窗口增加分销模式

qianyi
shanji 3 years ago
parent
commit
8d7f0252c2
  1. 5
      BBWY.Client/APIServices/PurchaseOrderService.cs
  2. 1
      BBWY.Client/App.xaml
  3. 21
      BBWY.Client/Converters/EnumToBooleanConverter.cs
  4. 9
      BBWY.Client/Models/Enums.cs
  5. 19
      BBWY.Client/Models/Order/RelationPurchaseOrderSku.cs
  6. 3
      BBWY.Client/ViewModels/Order/OrderListViewModel.cs
  7. 38
      BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs
  8. 2
      BBWY.Client/Views/Order/RelationPurchaseOrder.xaml
  9. 9
      BBWY.Client/Views/Purchase/1688Purchase.xaml
  10. 4
      BBWY.Server.Business/PlatformSDK/_1688Business.cs
  11. 2
      BBWY.Server.Business/Vender/VenderBusiness.cs
  12. 6
      BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs
  13. 9
      BBWY.Server.Model/Enums.cs

5
BBWY.Client/APIServices/PurchaseOrderService.cs

@ -56,10 +56,11 @@ namespace BBWY.Client.APIServices
/// <param name="consignee"></param>
/// <param name="purchaseSchemeProductSkuList"></param>
/// <returns></returns>
public ApiResponse<PreviewOrderResponse> PreviewPurchaseOrder(Consignee consignee, IList<PurchaseSchemeProductSku> purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount)
public ApiResponse<PreviewOrderResponse> PreviewPurchaseOrder(Consignee consignee, IList<PurchaseSchemeProductSku> purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount, PurchaseOrderMode purchaseOrderMode)
{
return SendRequest<PreviewOrderResponse>(globalContext.BBYWApiHost, "api/purchaseOrder/PreviewPurchaseOrder", new
{
purchaseOrderMode,
consignee,
CargoParamList = purchaseSchemeProductSkuList.Select(sku => new
{
@ -94,6 +95,7 @@ namespace BBWY.Client.APIServices
IList<PurchaseSchemeProductSku> purchaseSchemeProductSkuList,
Platform purchasePlatform,
PurchaseAccount purchaseAccount,
PurchaseOrderMode purchaseOrderMode,
string tradeMode,
string remark,
string orderId,
@ -103,6 +105,7 @@ namespace BBWY.Client.APIServices
{
return SendRequest<object>(globalContext.BBYWApiHost, "api/purchaseOrder/FastCreateOrder", new
{
purchaseOrderMode,
consignee,
CargoParamList = purchaseSchemeProductSkuList.Select(sku => new
{

1
BBWY.Client/App.xaml

@ -20,6 +20,7 @@
<ctr:MultiObjectConverter x:Key="mobjConverter"/>
<ctr:WidthConveter x:Key="widthConverter"/>
<ctr:InputNumberConverter x:Key="inputNumberConverter"/>
<ctr:EnumToBooleanConverter x:Key="enumToBooleanConverter"/>
</ResourceDictionary>
</Application.Resources>
</Application>

21
BBWY.Client/Converters/EnumToBooleanConverter.cs

@ -0,0 +1,21 @@
using System;
using System.Globalization;
using System.Windows.Data;
namespace BBWY.Client.Converters
{
public class EnumToBooleanConverter : IValueConverter
{
/// <inheritdoc/>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null ? false : value.Equals(parameter);
}
/// <inheritdoc/>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null && value.Equals(true) ? parameter : Binding.DoNothing;
}
}
}

9
BBWY.Client/Models/Enums.cs

@ -20,6 +20,15 @@
线 = 1
}
/// <summary>
/// 采购单模式
/// </summary>
public enum PurchaseOrderMode
{
= 0,
= 1
}
/// <summary>
/// 仓储类型
/// </summary>

19
BBWY.Client/Models/Order/RelationPurchaseOrderSku.cs

@ -5,6 +5,12 @@ namespace BBWY.Client.Models
{
public class RelationPurchaseOrderSku : NotifyObject
{
public RelationPurchaseOrderSku()
{
SingleSkuAmountStr = (0).ToString();
}
private string singleSkuAmountStr;
private decimal singleSkuAmount;
private decimal skuAmount;
@ -18,6 +24,18 @@ namespace BBWY.Client.Models
public string Title { get; set; }
public string SingleSkuAmountStr
{
get => singleSkuAmountStr; set
{
if (Set(ref singleSkuAmountStr, value))
{
if (decimal.TryParse(value, out decimal d))
SingleSkuAmount = d;
}
}
}
public decimal SingleSkuAmount
{
get => singleSkuAmount;
@ -41,5 +59,6 @@ namespace BBWY.Client.Models
[JsonIgnore]
public Action OnSkuAmountChanged { get; set; }
}
}

3
BBWY.Client/ViewModels/Order/OrderListViewModel.cs

@ -351,7 +351,8 @@ namespace BBWY.Client.ViewModels
SkuId = osku.Id,
Quantity = osku.ItemTotal,
Title = osku.Title,
SingleSkuAmount = (order.OrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == osku.Id)?.SkuAmount / osku.ItemTotal) ?? 0
SingleSkuAmount = (order.OrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == osku.Id)?.SkuAmount / osku.ItemTotal) ?? 0,
SingleSkuAmountStr = ((order.OrderCostDetailList.FirstOrDefault(ocd => ocd.SkuId == osku.Id)?.SkuAmount / osku.ItemTotal) ?? 0).ToString()
}).ToList());
relationPurchaseOrder.Closed += RelationPurchaseOrder_Closed;
relationPurchaseOrder.ShowDialog();

38
BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs

@ -36,6 +36,15 @@ namespace BBWY.Client.ViewModels
public string Town { get => town; set { Set(ref town, value); } }
public string PrucahseRemark { get => prucahseRemark; set { Set(ref prucahseRemark, value); } }
public PurchaseOrderMode PurchaseOrderMode
{
get => purchaseOrderMode; set
{
if (Set(ref purchaseOrderMode, value))
OnDelayTriggerExecute(Guid.NewGuid().ToString());
}
}
private OrderListViewModel orderListViewModel;
private GlobalContext globalContext;
private string orderId;
@ -56,7 +65,7 @@ namespace BBWY.Client.ViewModels
private string county;
private string town;
private string prucahseRemark;
private PurchaseOrderMode purchaseOrderMode = PurchaseOrderMode.;
private string tradeMode;
public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService, GlobalContext globalContext, OrderListViewModel orderListViewModel)
@ -69,6 +78,7 @@ namespace BBWY.Client.ViewModels
FastCreateOrderCommand = new RelayCommand(FastCreateOrder);
this.globalContext = globalContext;
this.orderListViewModel = orderListViewModel;
//PurchaseOrderMode = PurchaseOrderMode.代发;
}
public void SetData(string orderId, int skuItemCount, PurchaseScheme purchaseScheme, PurchaseAccount purchaseAccount, Consignee consignee)
@ -102,7 +112,13 @@ namespace BBWY.Client.ViewModels
{
WaitHandle.WaitAll(waitList.ToArray());
//IsLoading = false;
OnDelayTriggerExecute(string.Empty);
if (PurchaseSchemeProductSkuList.Count() > 0)
OnDelayTriggerExecute(Guid.NewGuid().ToString());
else
{
IsLoading = false;
App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示"));
}
});
}
@ -150,6 +166,7 @@ namespace BBWY.Client.ViewModels
//记录日志
errorMsg = response.Msg;
Console.WriteLine(errorMsg);
return null;
}
var jobject = response.Data;
@ -205,6 +222,8 @@ namespace BBWY.Client.ViewModels
private void OnDelayTriggerExecute(string key)
{
if (string.IsNullOrEmpty(key))
return;
IsLoading = true;
Task.Factory.StartNew(() => purchaseOrderService.PreviewPurchaseOrder(new Consignee()
{
@ -216,7 +235,7 @@ namespace BBWY.Client.ViewModels
Province = Province,
TelePhone = Mobile,
Town = Town
}, PurchaseSchemeProductSkuList, Platform., PurchaseAccount))
}, PurchaseSchemeProductSkuList, Platform., PurchaseAccount, PurchaseOrderMode))
.ContinueWith(t =>
{
IsLoading = false;
@ -242,9 +261,19 @@ namespace BBWY.Client.ViewModels
MessageBox.Show("总金额为0不能提交订单", "提示");
return;
}
if (string.IsNullOrEmpty(Mobile) ||
string.IsNullOrEmpty(Address) ||
string.IsNullOrEmpty(City) ||
string.IsNullOrEmpty(Province) ||
string.IsNullOrEmpty(County) ||
string.IsNullOrEmpty(Town) ||
string.IsNullOrEmpty(ContactName))
{
MessageBox.Show("收货人信息不全", "下单");
return;
}
IsLoading = true;
Task.Factory.StartNew(() => purchaseOrderService.FastCreateOrder(new Consignee()
{
Address = Address,
@ -258,6 +287,7 @@ namespace BBWY.Client.ViewModels
}, PurchaseSchemeProductSkuList,
Platform.,
PurchaseAccount,
PurchaseOrderMode,
tradeMode,
PrucahseRemark,
orderId,

2
BBWY.Client/Views/Order/RelationPurchaseOrder.xaml

@ -123,7 +123,7 @@
TextWrapping="Wrap"/>
</StackPanel>
<c:BTextBox Grid.Column="1" Margin="5,0"
Text="{Binding SingleSkuAmount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource inputNumberConverter}}"/>
Text="{Binding SingleSkuAmountStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock Text="{Binding Quantity}" Grid.Column="2" Style="{StaticResource middleTextBlock}"/>

9
BBWY.Client/Views/Purchase/1688Purchase.xaml

@ -4,6 +4,7 @@
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.Purchase"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d"
@ -122,6 +123,14 @@
<Run Text="{Binding TotalAmount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Foreground="#EC808D"/>
<Run Text="元"/>
</TextBlock>
<StackPanel Orientation="Horizontal" Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,100,0">
<RadioButton Content="批发" Padding="0" VerticalContentAlignment="Center"
GroupName="OrderMode"
IsChecked="{Binding PurchaseOrderMode,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:PurchaseOrderMode.批发}}"/>
<RadioButton Content="分销" Padding="0" VerticalContentAlignment="Center" Margin="5,0,0,0"
GroupName="OrderMode"
IsChecked="{Binding PurchaseOrderMode,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:PurchaseOrderMode.代发}}"/>
</StackPanel>
<c:BButton Content="提交订单" Grid.Row="4" Width="80" HorizontalAlignment="Right" Margin="0,0,5,0"
Command="{Binding FastCreateOrderCommand}"/>
</Grid>

4
BBWY.Server.Business/PlatformSDK/_1688Business.cs

@ -72,7 +72,7 @@ namespace BBWY.Server.Business
townText = previewOrderReuqest.Consignee.Town
},
cargoParamList = new List<CargoParam>(),
flow = "general"
flow = previewOrderReuqest.PurchaseOrderMode == Enums.PurchaseOrderMode. ? "general" : "saleproxy"
};
foreach (var cargo in previewOrderReuqest.CargoParamList)
{
@ -142,7 +142,7 @@ namespace BBWY.Server.Business
var param = new
{
flow = "general",
flow = createOnlinePurchaseOrderRequest.PurchaseOrderMode == Enums.PurchaseOrderMode. ? "general" : "saleproxy",
message = createOnlinePurchaseOrderRequest.Remark,
addressParam = new
{

2
BBWY.Server.Business/Vender/VenderBusiness.cs

@ -20,7 +20,7 @@ namespace BBWY.Server.Business
public VenderResponse GetVenderInfo(PlatformRequest platformRequest)
{
var relayAPIHost = GetPlatformRelayAPIHost(platformRequest.Platform);
var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetVenderInfo", platformRequest, null, System.Net.Http.HttpMethod.Post);
var sendResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetVenderInfo", platformRequest, null, HttpMethod.Post);
if (sendResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new BusinessException(sendResult.Content) { Code = (int)sendResult.StatusCode };
var response = JsonConvert.DeserializeObject<ApiResponse<VenderResponse>>(sendResult.Content);

6
BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs

@ -4,6 +4,12 @@ namespace BBWY.Server.Model.Dto
{
public class PreviewOrderReuqest: PlatformRequest
{
/// <summary>
/// 订单模式
/// <para>1688 general大市场订单 saleproxy分销订单</para>
/// </summary>
public Enums.PurchaseOrderMode PurchaseOrderMode { get; set; }
public ConsigneeRequest Consignee { get; set; }
public IList<CargoParamRequest> CargoParamList { get; set; }

9
BBWY.Server.Model/Enums.cs

@ -22,6 +22,15 @@
线 = 1
}
/// <summary>
/// 采购单模式
/// </summary>
public enum PurchaseOrderMode
{
= 0,
= 1
}
/// <summary>
/// 仓储类型
/// </summary>

Loading…
Cancel
Save