Browse Source

创建订单预览

qianyi
shanji 3 years ago
parent
commit
034b6159ae
  1. 27
      BBWY.Client/APIServices/PurchaseOrderService.cs
  2. 5
      BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs
  3. 20
      BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs
  4. 0
      BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs
  5. 5
      BBWY.Client/Models/Order/Order.cs
  6. 1
      BBWY.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
  7. 40
      BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs
  8. 3
      BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
  9. 1
      BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs
  10. 5
      BBWY.Client/Views/Purchase/1688Purchase.xaml
  11. 1
      BBWY.Server.Business/Order/OrderBusiness.cs
  12. 22
      BBWY.Server.Business/PlatformSDK/_1688Business.cs
  13. 3
      BBWY.Server.Model/Db/Order/Order.cs
  14. 2
      BBWY.Server.Model/Dto/Request/PurchaseOrder/OnlinePurchase/PreviewOrderReuqest.cs
  15. 5
      BBWY.Server.Model/Dto/Response/Order/OrderResponse.cs

27
BBWY.Client/APIServices/PurchaseOrderService.cs

@ -2,6 +2,7 @@
using BBWY.Common.Http; using BBWY.Common.Http;
using BBWY.Common.Models; using BBWY.Common.Models;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Net.Http; using System.Net.Http;
namespace BBWY.Client.APIServices namespace BBWY.Client.APIServices
@ -48,5 +49,31 @@ namespace BBWY.Client.APIServices
null, null,
HttpMethod.Delete); HttpMethod.Delete);
} }
/// <summary>
/// 预览订单
/// </summary>
/// <param name="consignee"></param>
/// <param name="purchaseSchemeProductSkuList"></param>
/// <returns></returns>
public ApiResponse<PreviewOrderResponse> PreviewPurchaseOrder(Consignee consignee, IList<PurchaseSchemeProductSku> purchaseSchemeProductSkuList, Platform purchasePlatform, PurchaseAccount purchaseAccount)
{
return SendRequest<PreviewOrderResponse>(globalContext.BBYWApiHost, "api/purchaseOrder/PreviewPurchaseOrder", new
{
consignee,
CargoParamList = purchaseSchemeProductSkuList.Select(sku => new
{
ProductId = sku.PurchaseProductId,
SkuId = sku.PurchaseSkuId,
SpecId = sku.PurchaseSkuSpecId,
Quantity = sku.ItemTotal
}),
Platform = purchasePlatform,
AppKey = purchaseAccount.AppKey,
AppSecret = purchaseAccount.AppSecret,
AppToken = purchaseAccount.AppToken,
SaveResponseLog = true
}, null, HttpMethod.Post);
}
} }
} }

5
BBWY.Client/Models/APIModel/Response/Order/OrderResponse.cs

@ -86,6 +86,11 @@ namespace BBWY.Client.Models
/// </summary> /// </summary>
public string VenderRemark { get; set; } public string VenderRemark { get; set; }
/// <summary>
/// 采购备注
/// </summary>
public string PurchaseRemark { get; set; }
public StorageType? StorageType { get; set; } public StorageType? StorageType { get; set; }
/// <summary> /// <summary>

20
BBWY.Client/Models/APIModel/Response/PurchaseOrder/OnlinePurchase/PreviewOrderResponse.cs

@ -0,0 +1,20 @@
namespace BBWY.Client.Models
{
public class PreviewOrderResponse
{
/// <summary>
/// 总额
/// </summary>
public decimal TotalAmount { get; set; }
/// <summary>
/// 货款总额
/// </summary>
public decimal ProductAmount { get; set; }
/// <summary>
/// 运费
/// </summary>
public decimal FreightAmount { get; set; }
}
}

0
BBWY.Client/Models/APIModel/Response/PurchaseOrderResponse.cs → BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs

5
BBWY.Client/Models/Order/Order.cs

@ -93,7 +93,10 @@ namespace BBWY.Client.Models
/// </summary> /// </summary>
public string VenderRemark { get; set; } public string VenderRemark { get; set; }
/// <summary>
/// 采购备注
/// </summary>
public string PurchaseRemark { get; set; }
/// <summary> /// <summary>
/// 仓储类型 /// 仓储类型

1
BBWY.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs

@ -114,6 +114,7 @@ namespace BBWY.Client.ViewModels
} }
else if (count == 1) else if (count == 1)
{ {
GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<object>(null, "ChoosePurchaseScheme_Close");
var p = new _1688Purchase(this.OrderId, this.ItemTotal, purchaseScheme, globalContext.User.Shop.PurchaseAccountList[0], this.Consignee); var p = new _1688Purchase(this.OrderId, this.ItemTotal, purchaseScheme, globalContext.User.Shop.PurchaseAccountList[0], this.Consignee);
p.ShowDialog(); p.ShowDialog();
} }

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

@ -8,6 +8,7 @@ using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows;
namespace BBWY.Client.ViewModels namespace BBWY.Client.ViewModels
{ {
@ -29,11 +30,13 @@ namespace BBWY.Client.ViewModels
public string City { get => city; set { Set(ref city, value); } } public string City { get => city; set { Set(ref city, value); } }
public string County { get => county; set { Set(ref county, value); } } public string County { get => county; set { Set(ref county, value); } }
public string Town { get => town; set { Set(ref town, value); } } public string Town { get => town; set { Set(ref town, value); } }
public string PrucahseRemark { get => prucahseRemark; set { Set(ref prucahseRemark, value); } }
private string orderId; private string orderId;
private int skuItemCount; private int skuItemCount;
private bool isLoading; private bool isLoading;
private OneBoundAPIService oneBoundAPIService; private OneBoundAPIService oneBoundAPIService;
private PurchaseOrderService purchaseOrderService;
private DelayTrigger delayTrigger; private DelayTrigger delayTrigger;
private decimal productAmount; private decimal productAmount;
@ -46,10 +49,12 @@ namespace BBWY.Client.ViewModels
private string city; private string city;
private string county; private string county;
private string town; private string town;
private string prucahseRemark;
public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService) public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService)
{ {
this.oneBoundAPIService = oneBoundAPIService; this.oneBoundAPIService = oneBoundAPIService;
this.purchaseOrderService = purchaseOrderService;
this.delayTrigger = new DelayTrigger(); this.delayTrigger = new DelayTrigger();
this.delayTrigger.OnExecute = OnDelayTriggerExecute; this.delayTrigger.OnExecute = OnDelayTriggerExecute;
PurchaseSchemeProductSkuList = new ObservableCollection<PurchaseSchemeProductSku>(); PurchaseSchemeProductSkuList = new ObservableCollection<PurchaseSchemeProductSku>();
@ -85,7 +90,8 @@ namespace BBWY.Client.ViewModels
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
WaitHandle.WaitAll(waitList.ToArray()); WaitHandle.WaitAll(waitList.ToArray());
IsLoading = false; //IsLoading = false;
OnDelayTriggerExecute(string.Empty);
}); });
} }
@ -102,7 +108,7 @@ namespace BBWY.Client.ViewModels
var purchaseSchemeProductSkuList = LoadPurchaseProductCore(purchaseSchemeProduct.PurchaseProductId, out string errorMsg); var purchaseSchemeProductSkuList = LoadPurchaseProductCore(purchaseSchemeProduct.PurchaseProductId, out string errorMsg);
if (purchaseSchemeProductSkuList != null && purchaseSchemeProductSkuList.Count > 0) if (purchaseSchemeProductSkuList != null && purchaseSchemeProductSkuList.Count > 0)
{ {
App.Current.Dispatcher.BeginInvoke((Action)delegate App.Current.Dispatcher.Invoke(() =>
{ {
foreach (var purchaseSchemeProductSku in purchaseSchemeProductSkuList) foreach (var purchaseSchemeProductSku in purchaseSchemeProductSkuList)
{ {
@ -117,7 +123,6 @@ namespace BBWY.Client.ViewModels
} }
ewh.Set(); ewh.Set();
ewh.Dispose(); ewh.Dispose();
} }
private IList<PurchaseSchemeProductSku> LoadPurchaseProductCore(string purchseProductId, out string errorMsg) private IList<PurchaseSchemeProductSku> LoadPurchaseProductCore(string purchseProductId, out string errorMsg)
@ -185,7 +190,32 @@ namespace BBWY.Client.ViewModels
private void OnDelayTriggerExecute(string key) private void OnDelayTriggerExecute(string key)
{ {
IsLoading = true;
Task.Factory.StartNew(() => purchaseOrderService.PreviewPurchaseOrder(new Consignee()
{
Address = Address,
City = City,
ContactName = ContactName,
County = County,
Mobile = Mobile,
Province = Province,
TelePhone = Mobile,
Town = Town
}, PurchaseSchemeProductSkuList, Platform., PurchaseAccount))
.ContinueWith(t =>
{
IsLoading = false;
var r = t.Result;
if (!r.Success)
{
ProductAmount = FreightAmount = TotalAmount = 0;
App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价"));
return;
}
ProductAmount = r.Data.ProductAmount;
FreightAmount = r.Data.FreightAmount;
TotalAmount = r.Data.TotalAmount;
});
} }
} }
} }

3
BBWY.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs

@ -246,6 +246,7 @@ namespace BBWY.Client.ViewModels
productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Add(new PurchaseSchemeProduct() productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Add(new PurchaseSchemeProduct()
{ {
Id = DateTime.Now.ToFileTime(),
IsEditing = true, IsEditing = true,
ProductId = productSku.ProductId, ProductId = productSku.ProductId,
SkuId = productSku.Id SkuId = productSku.Id
@ -280,7 +281,7 @@ namespace BBWY.Client.ViewModels
} }
var sku = ProductSkuList.FirstOrDefault(s => s.Id == purchaseSchemeProduct.SkuId); var sku = ProductSkuList.FirstOrDefault(s => s.Id == purchaseSchemeProduct.SkuId);
var purchaseUrl = match.Groups[1].Value; var purchaseUrl = match.Groups[1].Value;
if (sku.SelectedPurchaseScheme.PurchaseSchemeProductList.Any(p => p.PurchaseUrl == purchaseUrl)) if (sku.SelectedPurchaseScheme.PurchaseSchemeProductList.Any(p => p.Id != purchaseSchemeProduct.Id && p.PurchaseUrl == purchaseUrl))
{ {
MessageBox.Show("商品链接重复"); MessageBox.Show("商品链接重复");
return; return;

1
BBWY.Client/Views/Order/ChoosePurchaseScheme.xaml.cs

@ -10,6 +10,7 @@ namespace BBWY.Client.Views.Order
public ChoosePurchaseScheme() public ChoosePurchaseScheme()
{ {
InitializeComponent(); InitializeComponent();
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<object>(this, "ChoosePurchaseScheme_Close", (x) => this.Close());
} }
} }
} }

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

@ -28,6 +28,9 @@
<RowDefinition Height="100"/> <RowDefinition Height="100"/>
<RowDefinition Height="40"/> <RowDefinition Height="40"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999" Grid.RowSpan="5"/>
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}" <Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}"
Background="{StaticResource Border.Background}"> Background="{StaticResource Border.Background}">
<TextBlock Text="提交订单" HorizontalAlignment="Center" VerticalAlignment="Center"/> <TextBlock Text="提交订单" HorizontalAlignment="Center" VerticalAlignment="Center"/>
@ -77,7 +80,7 @@
<ColumnDefinition Width="0.8*"/> <ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.2*"/> <ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<c:BTextBox Text="留言信息" <c:BTextBox Text="{Binding PrucahseRemark,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}"
WaterRemark="留言信息" WaterRemark="留言信息"
Height="60" Height="60"
VerticalContentAlignment="Top" VerticalContentAlignment="Top"

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

@ -100,6 +100,7 @@ namespace BBWY.Server.Business
StoreId = o.StoreId, StoreId = o.StoreId,
StoreOrder = o.StoreOrder, StoreOrder = o.StoreOrder,
VenderRemark = o.VenderRemark, VenderRemark = o.VenderRemark,
PurchaseRemark = o.PurchaseRemark,
WaybillNo = o.WaybillNo, WaybillNo = o.WaybillNo,
Flag = o.Flag, Flag = o.Flag,
SDType = o.SDType, SDType = o.SDType,

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

@ -9,6 +9,7 @@ using Microsoft.Extensions.Caching.Memory;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using NLog; using NLog;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace BBWY.Server.Business namespace BBWY.Server.Business
{ {
@ -54,15 +55,15 @@ namespace BBWY.Server.Business
{ {
addressParam = new AddressParam() addressParam = new AddressParam()
{ {
fullName = previewOrderReuqest.ConsigneeRequest.ContactName, fullName = previewOrderReuqest.Consignee.ContactName,
mobile = previewOrderReuqest.ConsigneeRequest.Mobile, mobile = previewOrderReuqest.Consignee.Mobile,
phone = previewOrderReuqest.ConsigneeRequest.TelePhone, phone = previewOrderReuqest.Consignee.TelePhone,
postCode = "000000", postCode = "000000",
address = previewOrderReuqest.ConsigneeRequest.Address, address = previewOrderReuqest.Consignee.Address,
provinceText = previewOrderReuqest.ConsigneeRequest.Province, provinceText = previewOrderReuqest.Consignee.Province,
cityText = previewOrderReuqest.ConsigneeRequest.City, cityText = previewOrderReuqest.Consignee.City,
areaText = previewOrderReuqest.ConsigneeRequest.County, areaText = previewOrderReuqest.Consignee.County,
townText = previewOrderReuqest.ConsigneeRequest.Town townText = previewOrderReuqest.Consignee.Town
}, },
cargoParamList = new List<CargoParam>(), cargoParamList = new List<CargoParam>(),
flow = "general" flow = "general"
@ -85,9 +86,12 @@ namespace BBWY.Server.Business
throw new BusinessException(result.Value<string>("errorMsg")) { Code = 0 }; throw new BusinessException(result.Value<string>("errorMsg")) { Code = 0 };
} }
var orderPreviewResuslt = (JArray)result["orderPreviewResuslt"];
return new PreviewOrderResponse() return new PreviewOrderResponse()
{ {
FreightAmount = orderPreviewResuslt.Sum(jt => jt.Value<decimal>("sumCarriage")) / 100M,
ProductAmount = orderPreviewResuslt.Sum(jt => jt.Value<decimal>("sumPaymentNoCarriage")) / 100M,
TotalAmount = orderPreviewResuslt.Sum(jt => jt.Value<decimal>("sumPayment")) / 100M
}; };
} }
} }

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

@ -116,6 +116,9 @@ namespace BBWY.Server.Model.Db
public string VenderRemark { get; set; } public string VenderRemark { get; set; }
public string PurchaseRemark { get; set; }
/// <summary> /// <summary>
/// 仓库Id /// 仓库Id
/// </summary> /// </summary>

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

@ -4,7 +4,7 @@ namespace BBWY.Server.Model.Dto
{ {
public class PreviewOrderReuqest: PlatformRequest public class PreviewOrderReuqest: PlatformRequest
{ {
public ConsigneeRequest ConsigneeRequest { get; set; } public ConsigneeRequest Consignee { get; set; }
public IList<CargoParamRequest> CargoParamList { get; set; } public IList<CargoParamRequest> CargoParamList { get; set; }
} }

5
BBWY.Server.Model/Dto/Response/Order/OrderResponse.cs

@ -92,6 +92,11 @@ namespace BBWY.Server.Model.Dto
/// </summary> /// </summary>
public string VenderRemark { get; set; } public string VenderRemark { get; set; }
/// <summary>
/// 采购备注
/// </summary>
public string PurchaseRemark { get; set; }
public Enums.StorageType? StorageType { get; set; } public Enums.StorageType? StorageType { get; set; }
/// <summary> /// <summary>

Loading…
Cancel
Save