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. 7
      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.Models;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
namespace BBWY.Client.APIServices
@ -48,5 +49,31 @@ namespace BBWY.Client.APIServices
null,
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>
public string VenderRemark { get; set; }
/// <summary>
/// 采购备注
/// </summary>
public string PurchaseRemark { get; set; }
public StorageType? StorageType { get; set; }
/// <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>
public string VenderRemark { get; set; }
/// <summary>
/// 采购备注
/// </summary>
public string PurchaseRemark { get; set; }
/// <summary>
/// 仓储类型

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

@ -114,6 +114,7 @@ namespace BBWY.Client.ViewModels
}
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);
p.ShowDialog();
}

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

@ -8,6 +8,7 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
namespace BBWY.Client.ViewModels
{
@ -29,11 +30,13 @@ namespace BBWY.Client.ViewModels
public string City { get => city; set { Set(ref city, value); } }
public string County { get => county; set { Set(ref county, 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 int skuItemCount;
private bool isLoading;
private OneBoundAPIService oneBoundAPIService;
private PurchaseOrderService purchaseOrderService;
private DelayTrigger delayTrigger;
private decimal productAmount;
@ -46,10 +49,12 @@ namespace BBWY.Client.ViewModels
private string city;
private string county;
private string town;
private string prucahseRemark;
public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService)
public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService, PurchaseOrderService purchaseOrderService)
{
this.oneBoundAPIService = oneBoundAPIService;
this.purchaseOrderService = purchaseOrderService;
this.delayTrigger = new DelayTrigger();
this.delayTrigger.OnExecute = OnDelayTriggerExecute;
PurchaseSchemeProductSkuList = new ObservableCollection<PurchaseSchemeProductSku>();
@ -85,7 +90,8 @@ namespace BBWY.Client.ViewModels
Task.Factory.StartNew(() =>
{
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);
if (purchaseSchemeProductSkuList != null && purchaseSchemeProductSkuList.Count > 0)
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
App.Current.Dispatcher.Invoke(() =>
{
foreach (var purchaseSchemeProductSku in purchaseSchemeProductSkuList)
{
@ -117,7 +123,6 @@ namespace BBWY.Client.ViewModels
}
ewh.Set();
ewh.Dispose();
}
private IList<PurchaseSchemeProductSku> LoadPurchaseProductCore(string purchseProductId, out string errorMsg)
@ -185,7 +190,32 @@ namespace BBWY.Client.ViewModels
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;
});
}
}
}

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

@ -98,8 +98,8 @@ namespace BBWY.Client.ViewModels
var waitList = new List<EventWaitHandle>();
foreach (var sku in ProductSkuList)
{
//当前SKU下当前采购商的采购方案
var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
//当前SKU下当前采购商的采购方案
var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
if (apiScheme == null)
continue;
@ -246,6 +246,7 @@ namespace BBWY.Client.ViewModels
productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Add(new PurchaseSchemeProduct()
{
Id = DateTime.Now.ToFileTime(),
IsEditing = true,
ProductId = productSku.ProductId,
SkuId = productSku.Id
@ -280,7 +281,7 @@ namespace BBWY.Client.ViewModels
}
var sku = ProductSkuList.FirstOrDefault(s => s.Id == purchaseSchemeProduct.SkuId);
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("商品链接重复");
return;

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

@ -10,6 +10,7 @@ namespace BBWY.Client.Views.Order
public ChoosePurchaseScheme()
{
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="40"/>
</Grid.RowDefinitions>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999" Grid.RowSpan="5"/>
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}"
Background="{StaticResource Border.Background}">
<TextBlock Text="提交订单" HorizontalAlignment="Center" VerticalAlignment="Center"/>
@ -77,7 +80,7 @@
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions>
<c:BTextBox Text="留言信息"
<c:BTextBox Text="{Binding PrucahseRemark,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}"
WaterRemark="留言信息"
Height="60"
VerticalContentAlignment="Top"

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

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

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

@ -9,6 +9,7 @@ using Microsoft.Extensions.Caching.Memory;
using Newtonsoft.Json.Linq;
using NLog;
using System.Collections.Generic;
using System.Linq;
namespace BBWY.Server.Business
{
@ -54,15 +55,15 @@ namespace BBWY.Server.Business
{
addressParam = new AddressParam()
{
fullName = previewOrderReuqest.ConsigneeRequest.ContactName,
mobile = previewOrderReuqest.ConsigneeRequest.Mobile,
phone = previewOrderReuqest.ConsigneeRequest.TelePhone,
fullName = previewOrderReuqest.Consignee.ContactName,
mobile = previewOrderReuqest.Consignee.Mobile,
phone = previewOrderReuqest.Consignee.TelePhone,
postCode = "000000",
address = previewOrderReuqest.ConsigneeRequest.Address,
provinceText = previewOrderReuqest.ConsigneeRequest.Province,
cityText = previewOrderReuqest.ConsigneeRequest.City,
areaText = previewOrderReuqest.ConsigneeRequest.County,
townText = previewOrderReuqest.ConsigneeRequest.Town
address = previewOrderReuqest.Consignee.Address,
provinceText = previewOrderReuqest.Consignee.Province,
cityText = previewOrderReuqest.Consignee.City,
areaText = previewOrderReuqest.Consignee.County,
townText = previewOrderReuqest.Consignee.Town
},
cargoParamList = new List<CargoParam>(),
flow = "general"
@ -85,9 +86,12 @@ namespace BBWY.Server.Business
throw new BusinessException(result.Value<string>("errorMsg")) { Code = 0 };
}
var orderPreviewResuslt = (JArray)result["orderPreviewResuslt"];
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 PurchaseRemark { get; set; }
/// <summary>
/// 仓库Id
/// </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 ConsigneeRequest ConsigneeRequest { get; set; }
public ConsigneeRequest Consignee { 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>
public string VenderRemark { get; set; }
/// <summary>
/// 采购备注
/// </summary>
public string PurchaseRemark { get; set; }
public Enums.StorageType? StorageType { get; set; }
/// <summary>

Loading…
Cancel
Save