shanji 2 years ago
parent
commit
8fcbba3f2d
  1. 77
      BBWY.Client/APIServices/BatchPurchaseService.cs
  2. 21
      BBWY.Client/Models/APIModel/Response/BatchPurchase/BatchCreareOrderResponse.cs
  3. 112
      BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs
  4. 2
      BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml
  5. 26
      BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml.cs
  6. 8
      BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs
  7. 8
      BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs

77
BBWY.Client/APIServices/BatchPurchaseService.cs

@ -37,18 +37,59 @@ namespace BBWY.Client.APIServices
PurchaseOrderMode purchaseOrderMode, PurchaseOrderMode purchaseOrderMode,
IList<PurchaseAccount> purchaseAccountList) IList<PurchaseAccount> purchaseAccountList)
{ {
var productParamList = new List<object>();
foreach (var productSkuWithScheme in productSkuWithSchemeList)
{
foreach (var purchaseSchemeProductSku in productSkuWithScheme.PurchaseSchemeProductSkuList)
{
productParamList.Add(new
{
purchaseSchemeProductSku.PurchaseProductId,
purchaseSchemeProductSku.PurchaseSkuId,
PurchaseSpecId = purchaseSchemeProductSku.PurchaseSkuSpecId,
Quantity = purchaseSchemeProductSku.ItemTotal,
productSkuWithScheme.PurchaserId,
productSkuWithScheme.PurchaserName,
productSkuWithScheme.PurchasePlatform,
BelongSkuId = productSkuWithScheme.SkuId
});
}
}
return SendRequest<PreviewOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/PreviewOrder", new
{
consignee,
purchaseOrderMode,
purchaseAccountList,
productParamList
}, null, HttpMethod.Post);
}
public ApiResponse<BatchCreareOrderResponse> CreateOrder(IList<ProductSkuWithScheme> productSkuWithSchemeList,
Consignee consignee,
PurchaseOrderMode purchaseOrderMode,
IList<PurchaseAccount> purchaseAccountList,
string extensions,
string remark)
{
/* /*
public string PurchaseProductId { get; set; }
public string PuchaseSkuId { get; set; }
public string PurchaseSpecId { get; set; }
public int Quantity { get; set; }
public string PurchaserId { get; set; }
public string PurchaserName { get; set; }
public Enums.Platform PurchasePlatform { get; set; }
public string BelongSkuId { get; set; } public string BelongSkuId { get; set; }
public string BelongProductId { get; set; }
public decimal BelongPrice { get; set; }
public string BelongSkuTitle { get; set; }
public string BelongLogo { get; set; }
public int BelongQuantity { get; set; }
public long BelongPurchaseSchemeId { get; set; }
*/ */
var productParamList = new List<object>(); var productParamList = new List<object>();
foreach (var productSkuWithScheme in productSkuWithSchemeList) foreach (var productSkuWithScheme in productSkuWithSchemeList)
{ {
@ -60,20 +101,30 @@ namespace BBWY.Client.APIServices
purchaseSchemeProductSku.PurchaseSkuId, purchaseSchemeProductSku.PurchaseSkuId,
PurchaseSpecId = purchaseSchemeProductSku.PurchaseSkuSpecId, PurchaseSpecId = purchaseSchemeProductSku.PurchaseSkuSpecId,
Quantity = purchaseSchemeProductSku.ItemTotal, Quantity = purchaseSchemeProductSku.ItemTotal,
PurchaserId = productSkuWithScheme.PurchaserId, productSkuWithScheme.PurchaserId,
PurchaserName = productSkuWithScheme.PurchaserName, productSkuWithScheme.PurchaserName,
PurchasePlatform = productSkuWithScheme.PurchasePlatform, productSkuWithScheme.PurchasePlatform,
BelongSkuId = productSkuWithScheme.SkuId BelongSkuId = productSkuWithScheme.SkuId,
BelongProductId = productSkuWithScheme.ProductId,
BelongPrice = productSkuWithScheme.Price,
BelongSkuTitle = productSkuWithScheme.Title,
BelongLogo = productSkuWithScheme.Logo,
BelongQuantity = productSkuWithScheme.Quantity,
BelongPurchaseSchemeId = productSkuWithScheme.PurchaseSchemeId
}); });
} }
} }
return SendRequest<PreviewOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/PreviewOrder", new return SendRequest<BatchCreareOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/BatchCreateOrder", new
{ {
consignee, consignee,
purchaseOrderMode, purchaseOrderMode,
purchaseAccountList, purchaseAccountList,
productParamList productParamList,
extensions,
remark,
globalContext.User.Shop.ShopId,
globalContext.User.Shop.ShopName
}, null, HttpMethod.Post); }, null, HttpMethod.Post);
} }
} }

21
BBWY.Client/Models/APIModel/Response/BatchPurchase/BatchCreareOrderResponse.cs

@ -0,0 +1,21 @@
using System.Collections.Generic;
namespace BBWY.Client.Models
{
public class BatchCreareOrderResponse
{
/// <summary>
/// 已经成功下单的SkuId集合
/// </summary>
public IList<string> SuccessSkuIdList { get; set; }
public IList<BatchCreareOrderFailDetail> FailSkuList { get; set; }
}
public class BatchCreareOrderFailDetail
{
public string SkuId { get; set; }
public string ErrorMsg { get; set; }
}
}

112
BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs

@ -7,6 +7,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
@ -33,10 +34,10 @@ 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; private string purchaseRemark;
private PurchaseOrderMode purchaseOrderMode = PurchaseOrderMode.; private PurchaseOrderMode purchaseOrderMode = PurchaseOrderMode.;
private string tradeMode; //private string tradeMode;
private string extensions; private string extensions;
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
@ -51,7 +52,7 @@ 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); } } public string PurchaseRemark { get => purchaseRemark; set { Set(ref purchaseRemark, value); } }
public PurchaseOrderMode PurchaseOrderMode public PurchaseOrderMode PurchaseOrderMode
{ {
@ -145,14 +146,14 @@ namespace BBWY.Client.ViewModels
if (!r.Success) if (!r.Success)
{ {
ProductAmount = FreightAmount = TotalAmount = 0; ProductAmount = FreightAmount = TotalAmount = 0;
tradeMode = string.Empty; //tradeMode = string.Empty;
App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价")); App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "预览订单报价"));
return; return;
} }
ProductAmount = r.Data.ProductAmount; ProductAmount = r.Data.ProductAmount;
FreightAmount = r.Data.FreightAmount; FreightAmount = r.Data.FreightAmount;
TotalAmount = r.Data.TotalAmount; TotalAmount = r.Data.TotalAmount;
tradeMode = r.Data.OrderTradeType?.Code; //tradeMode = r.Data.OrderTradeType?.Code;
extensions = r.Data.Extensions; extensions = r.Data.Extensions;
}); });
} }
@ -183,46 +184,67 @@ namespace BBWY.Client.ViewModels
return; return;
} }
//IsLoading = true; IsLoading = true;
//Task.Factory.StartNew(() => purchaseOrderService.FastCreateOrder(new Consignee()
//{ Task.Factory.StartNew(() => batchPurchaseService.CreateOrder(ProductSkuWithSchemeList,
// Address = Address, new Consignee()
// City = City, {
// ContactName = ContactName, Address = Address,
// County = County, City = City,
// Mobile = Mobile, ContactName = ContactName,
// Province = Province, County = County,
// TelePhone = Mobile, Mobile = Mobile,
// Town = Town Province = Province,
//}, PurchaseSchemeProductSkuList, TelePhone = Mobile,
// purchaseAccount.PurchasePlatformId, Town = Town
// purchaseAccount, },
// PurchaseOrderMode, this.PurchaseOrderMode,
// tradeMode, globalContext.User.Shop.PurchaseAccountList,
// PrucahseRemark, this.extensions,
// order.Id, this.PurchaseRemark)).ContinueWith(t =>
// globalContext.User.Shop.ShopId, {
// purchaseAccount.Id, IsLoading = false;
// purchaseAccount.AccountName, var response = t.Result;
// purchaseSchemeList[0].PurchaserName, if (!response.Success)
// purchaser.Id, {
// globalContext.User.Shop.PlatformCommissionRatio ?? 0.05M, App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "创建采购单"));
// extensions)).ContinueWith(t => return;
// { }
// IsLoading = false;
// var r = t.Result; if (response.Data.SuccessSkuIdList != null && response.Data.SuccessSkuIdList.Count() > 0)
// if (!r.Success) {
// { //删除下单成功的订单
// App.Current.Dispatcher.Invoke(() => MessageBox.Show(r.Msg, "下单")); App.Current.Dispatcher.Invoke(() =>
// return; {
// } for (var i = 0; i < ProductSkuWithSchemeList.Count(); i++)
{
// //刷新订单列表 if (response.Data.SuccessSkuIdList.Contains(ProductSkuWithSchemeList[i].SkuId))
// orderListViewModel.RefreshOrder(order.Id); {
ProductSkuWithSchemeList.Remove(ProductSkuWithSchemeList[i]);
// //关闭当前窗口 i--;
// GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<object>(null, "OnlinePurchase_Close"); }
// }); }
});
}
if (response.Data.FailSkuList != null && response.Data.FailSkuList.Count() > 0)
{
var errorBuilder = new StringBuilder();
foreach (var error in response.Data.FailSkuList)
{
errorBuilder.AppendLine($"SkuId {error.SkuId}");
errorBuilder.AppendLine($"错误信息 {error.ErrorMsg}");
errorBuilder.AppendLine();
}
App.Current.Dispatcher.Invoke(() => MessageBox.Show(errorBuilder.ToString(), "创建采购单"));
}
else
{
//关闭窗口
App.Current.Dispatcher.Invoke(() => GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(true, "BatchCreateNewPurchaseOrderClose"));
}
});
} }
private void AddProductSku() private void AddProductSku()

2
BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml

@ -282,7 +282,7 @@
<ColumnDefinition Width="0.8*"/> <ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.2*"/> <ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<c:BTextBox Text="{Binding PrucahseRemark,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}" <c:BTextBox Text="{Binding PurchaseRemark,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged}"
WaterRemark="留言信息" WaterRemark="留言信息"
Height="60" Height="60"
VerticalContentAlignment="Top" VerticalContentAlignment="Top"

26
BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml.cs

@ -1,15 +1,5 @@
using BBWY.Controls; using BBWY.Controls;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BBWY.Client.Views.BatchPurchase namespace BBWY.Client.Views.BatchPurchase
{ {
@ -21,6 +11,22 @@ namespace BBWY.Client.Views.BatchPurchase
public BatchCreateNewPurchaseOrder() public BatchCreateNewPurchaseOrder()
{ {
InitializeComponent(); InitializeComponent();
this.Loaded += BatchCreateNewPurchaseOrder_Loaded;
this.Unloaded += BatchCreateNewPurchaseOrder_Unloaded;
}
private void BatchCreateNewPurchaseOrder_Unloaded(object sender, RoutedEventArgs e)
{
GalaSoft.MvvmLight.Messaging.Messenger.Default.Unregister(this);
}
private void BatchCreateNewPurchaseOrder_Loaded(object sender, RoutedEventArgs e)
{
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<bool>(this, "BatchCreateNewPurchaseOrderClose", (r) =>
{
this.DialogResult = r;
this.Close();
});
} }
} }
} }

8
BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs

@ -128,7 +128,7 @@ namespace BBWY.Server.Business
throw new BusinessException("缺少采购账号"); throw new BusinessException("缺少采购账号");
var skuGroups = request.ProductParamList.GroupBy(p => p.BelongSkuId); var skuGroups = request.ProductParamList.GroupBy(p => p.BelongSkuId);
var carIds = new List<object>(); var extJArray = new List<object>();
var errorBuilder = new StringBuilder(); var errorBuilder = new StringBuilder();
var freightAmount = 0M; var freightAmount = 0M;
var productAmount = 0M; var productAmount = 0M;
@ -162,9 +162,9 @@ namespace BBWY.Server.Business
}); });
if (purchasePlatform == Enums.Platform.) if (purchasePlatform == Enums.Platform.)
carIds.Add(new { BelongSkuId = skuGroup.Key, CardId = previewOrderResponse.Extensions }); extJArray.Add(new { BelongSkuId = skuGroup.Key, CardId = previewOrderResponse.Extensions });
else if (purchasePlatform == Enums.Platform.) else if (purchasePlatform == Enums.Platform.)
carIds.Add(new { BelongSkuId = skuGroup.Key, OrderTradeTypeCode = previewOrderResponse.OrderTradeType?.Code }); extJArray.Add(new { BelongSkuId = skuGroup.Key, OrderTradeTypeCode = previewOrderResponse.OrderTradeType?.Code });
freightAmount += previewOrderResponse.FreightAmount; freightAmount += previewOrderResponse.FreightAmount;
productAmount += previewOrderResponse.ProductAmount; productAmount += previewOrderResponse.ProductAmount;
@ -181,7 +181,7 @@ namespace BBWY.Server.Business
return new PreviewOrderResponse() return new PreviewOrderResponse()
{ {
Extensions = JsonConvert.SerializeObject(carIds), Extensions = JsonConvert.SerializeObject(extJArray),
FreightAmount = freightAmount, FreightAmount = freightAmount,
ProductAmount = productAmount, ProductAmount = productAmount,
TotalAmount = totalAmount TotalAmount = totalAmount

8
BBWY.Server.Model/Dto/Response/PurchaseOrderV2/PurchaseOrderV2Response.cs

@ -0,0 +1,8 @@
using BBWY.Server.Model.Db;
namespace BBWY.Server.Model.Dto
{
public class PurchaseOrderV2Response : PurchaseOrderV2
{
}
}
Loading…
Cancel
Save