diff --git a/BBWY.Client/APIServices/BatchPurchaseService.cs b/BBWY.Client/APIServices/BatchPurchaseService.cs index 237f9eb5..3575cd39 100644 --- a/BBWY.Client/APIServices/BatchPurchaseService.cs +++ b/BBWY.Client/APIServices/BatchPurchaseService.cs @@ -1,4 +1,5 @@ using BBWY.Client.Models; +using BBWY.Client.Models.QiKu; using BBWY.Common.Http; using BBWY.Common.Models; using System; @@ -71,7 +72,8 @@ namespace BBWY.Client.APIServices PurchaseOrderMode purchaseOrderMode, IList purchaseAccountList, string extensions, - string remark) + string remark, + IList packSkuConfigList) { var productParamList = new List(); foreach (var productSkuWithScheme in productSkuWithSchemeList) @@ -93,8 +95,7 @@ namespace BBWY.Client.APIServices BelongSkuTitle = productSkuWithScheme.Title, BelongLogo = productSkuWithScheme.Logo, BelongQuantity = productSkuWithScheme.Quantity, - BelongPurchaseSchemeId = productSkuWithScheme.PurchaseSchemeId, - + BelongPurchaseSchemeId = productSkuWithScheme.PurchaseSchemeId }); } } @@ -109,7 +110,8 @@ namespace BBWY.Client.APIServices remark, autoPay, globalContext.User.Shop.ShopId, - globalContext.User.Shop.ShopName + globalContext.User.Shop.ShopName, + packSkuConfigList }, null, HttpMethod.Post); } diff --git a/BBWY.Client/APIServices/LogisticsService.cs b/BBWY.Client/APIServices/LogisticsService.cs index 347484ad..fc6e67ff 100644 --- a/BBWY.Client/APIServices/LogisticsService.cs +++ b/BBWY.Client/APIServices/LogisticsService.cs @@ -20,5 +20,16 @@ namespace BBWY.Client.APIServices globalContext.User.Shop.AppToken }, null, HttpMethod.Post); } + + public ApiResponse> GetStoreList() + { + return SendRequest>(globalContext.BBYWApiHost, "api/vender/GetStoreHouseList", new + { + globalContext.User.Shop.Platform, + globalContext.User.Shop.AppKey, + globalContext.User.Shop.AppSecret, + globalContext.User.Shop.AppToken + }, null, HttpMethod.Post); + } } } diff --git a/BBWY.Client/App.xaml.cs b/BBWY.Client/App.xaml.cs index ed5c0cd0..e749423e 100644 --- a/BBWY.Client/App.xaml.cs +++ b/BBWY.Client/App.xaml.cs @@ -122,6 +122,7 @@ namespace BBWY.Client serviceCollection.AddTransient(); serviceCollection.AddTransient(); serviceCollection.AddTransient(); + serviceCollection.AddTransient(); #region 注册拳探SDK相关类 serviceCollection.AddSingleton(); diff --git a/BBWY.Client/Models/APIModel/Response/Logistics/StoreResponse.cs b/BBWY.Client/Models/APIModel/Response/Logistics/StoreResponse.cs index 5f821c65..8ed924cf 100644 --- a/BBWY.Client/Models/APIModel/Response/Logistics/StoreResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Logistics/StoreResponse.cs @@ -1,9 +1,18 @@ -namespace BBWY.Client.Models +using System; + +namespace BBWY.Client.Models { public class StoreResponse { - public string StoreId { get; set; } + public DateTime? CreateTime { get; set; } + public string Id { get; set; } + + public string Name { get; set; } + + public Platform Platform { get; set; } + + public StockStatus Status { get; set; } - public string StoreName { get; set; } + public StockType Type { get; set; } } } diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index 3c353aee..433dc415 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -402,4 +402,20 @@ 胶带 = 2, 其他 = 3 } + + /// + /// 京东仓库类型 1商家仓 2京东仓 + /// + public enum StockType + { + 商家仓 = 1, 京仓 = 2 + } + + /// + /// 仓库状态 0暂停,1使用 + /// + public enum StockStatus + { + 暂停 = 0, 使用 = 1 + } } diff --git a/BBWY.Client/Models/QiKu/PackSkuConfig.cs b/BBWY.Client/Models/QiKu/PackSkuConfig.cs index 968fed0c..619a3757 100644 --- a/BBWY.Client/Models/QiKu/PackSkuConfig.cs +++ b/BBWY.Client/Models/QiKu/PackSkuConfig.cs @@ -1,7 +1,14 @@ -namespace BBWY.Client.Models.QiKu +using System.Collections.ObjectModel; + +namespace BBWY.Client.Models.QiKu { public class PackSkuConfig : NotifyObject { + public PackSkuConfig() + { + PackSkuSplitConfigList = new ObservableCollection(); + } + private int splitCount; public string SkuId { get; set; } @@ -19,6 +26,8 @@ /// 分箱数量 /// public int SplitCount { get => splitCount; set { Set(ref splitCount, value); } } + + public ObservableCollection PackSkuSplitConfigList { get; set; } } public class PackSkuSplitConfig : NotifyObject diff --git a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs index 2e656e37..0b1fd1ac 100644 --- a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs +++ b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs @@ -1,5 +1,6 @@ using BBWY.Client.APIServices; using BBWY.Client.Models; +using BBWY.Client.Models.QiKu; using BBWY.Client.Views.BatchPurchase; using BBWY.Common.Trigger; using GalaSoft.MvvmLight.Command; @@ -76,8 +77,6 @@ namespace BBWY.Client.ViewModels public ICommand SubtractQuantityCommand { get; set; } - public ICommand NextCommand { get; set; } - public BatchPurchaseCreateNewOrderViewModel(PurchaseProductAPIService purchaseProductAPIService, PurchaseService purchaseService, GlobalContext globalContext, @@ -90,7 +89,6 @@ namespace BBWY.Client.ViewModels ProductSkuWithSchemeList = new ObservableCollection(); FastCreateOrderCommand = new RelayCommand(FastCreateOrder); - NextCommand = new RelayCommand(Next); PreviewOrderCommand = new RelayCommand(PreviewOrder); AddProductSkuCommand = new RelayCommand(AddProductSku); DeleteProductSkuWithSchemeCommand = new RelayCommand(DeleteProductSkuWithScheme); @@ -197,6 +195,22 @@ namespace BBWY.Client.ViewModels return; } + IList packSkuConfigList = null; + var isContainsQT = ProductSkuWithSchemeList.Any(ps => ps.PurchasePlatform == Platform.拳探); + if (isContainsQT) + { + var packWindow = new PackSkuConfigWindow(ProductSkuWithSchemeList.Where(ps => ps.PurchasePlatform == Platform.拳探).Select(ps => new PackSkuConfig() + { + Logo = ps.Logo, + SkuId = ps.SkuId, + Title = ps.Title, + PurchaseCount = ps.Quantity + }).ToList()); + + if (packWindow.ShowDialog() != true) + return; + packSkuConfigList = packWindow.GetPackSkuConfigList(); + } IsLoading = true; Task.Factory.StartNew(() => batchPurchaseService.CreateOrder(ProductSkuWithSchemeList, @@ -214,7 +228,8 @@ namespace BBWY.Client.ViewModels this.PurchaseOrderMode, globalContext.User.Shop.PurchaseAccountList, this.extensions, - this.PurchaseRemark)).ContinueWith(t => + this.PurchaseRemark, + packSkuConfigList)).ContinueWith(t => { IsLoading = false; var response = t.Result; @@ -379,30 +394,6 @@ namespace BBWY.Client.ViewModels purchaseSchemeProductSku.ItemTotal--; } - private void Next() - { - if (IsLoading) - return; - if (TotalAmount == 0) - { - 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; - } - - - - - } + } } diff --git a/BBWY.Client/ViewModels/QiKu/PackSkuSplitConfigViewModel.cs b/BBWY.Client/ViewModels/QiKu/PackSkuSplitConfigViewModel.cs new file mode 100644 index 00000000..324ef251 --- /dev/null +++ b/BBWY.Client/ViewModels/QiKu/PackSkuSplitConfigViewModel.cs @@ -0,0 +1,105 @@ +using BBWY.Client.APIServices; +using BBWY.Client.Models; +using BBWY.Client.Models.QiKu; +using BBWY.Client.Views.BatchPurchase; +using GalaSoft.MvvmLight.Command; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Windows; +using System.Windows.Input; + +namespace BBWY.Client.ViewModels +{ + public class PackSkuSplitConfigViewModel : BaseVM + { + public IList PackSkuConfigList { get; set; } + + private IList storeList; + + public ICommand SetSplitCountCommand { get; set; } + + public ICommand SetPackCountAndStoreCommand { get; set; } + + public ICommand SaveCommand { get; set; } + + private LogisticsService logisticsService; + + public PackSkuSplitConfigViewModel(LogisticsService logisticsService) + { + this.logisticsService = logisticsService; + SetSplitCountCommand = new RelayCommand(SetSplitCount); + SetPackCountAndStoreCommand = new RelayCommand(SetPackCountAndStore); + SaveCommand = new RelayCommand(Save); + PackSkuConfigList = new ObservableCollection(); + } + + public void SetData(IList packSkuConfigList) + { + foreach (var item in packSkuConfigList) + PackSkuConfigList.Add(item); + } + + public IList GetPackSkuConfigList() + { + return PackSkuConfigList; + } + + private void SetSplitCount(PackSkuConfig packSkuConfig) + { + if (packSkuConfig.SplitCount <= 0) + { + MessageBox.Show("份数不正确"); + return; + } + + packSkuConfig.PackSkuSplitConfigList.Clear(); + for (var i = 1; i <= packSkuConfig.SplitCount; i++) + { + packSkuConfig.PackSkuSplitConfigList.Add(new PackSkuSplitConfig() + { + Index = i, + PackCount = 0 + }); + } + } + + private void SetPackCountAndStore(PackSkuSplitConfig packSkuSplitConfig) + { + if (storeList == null) + { + var response = logisticsService.GetStoreList(); + if (!response.Success) + { + MessageBox.Show(response.Msg, "获取仓库"); + return; + } + storeList = response.Data; + } + var w = new PackSkuSplitCountAndStoreWindow(packSkuSplitConfig.PackCount, packSkuSplitConfig.Store, storeList); + if (w.ShowDialog() == true) + { + packSkuSplitConfig.PackCount = w.Quantity; + packSkuSplitConfig.Store = w.Store; + } + } + + private void Save() + { + if (PackSkuConfigList.Any(s => s.PackSkuSplitConfigList.Count() == 0 || + s.PackSkuSplitConfigList.Any(sp => sp.PackCount <= 0))) + { + MessageBox.Show("装箱设置不正确", "提示"); + return; + } + + if (PackSkuConfigList.Any(s => s.PurchaseCount != s.PackSkuSplitConfigList.Sum(sp => sp.PackCount))) + { + MessageBox.Show("打包份数总数与采购数量不相等", "提示"); + return; + } + + GalaSoft.MvvmLight.Messaging.Messenger.Default.Send(true, "PackSkuConfigWindowClose"); + } + } +} diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs index 7ccd0dad..cfd7e27c 100644 --- a/BBWY.Client/ViewModels/ViewModelLocator.cs +++ b/BBWY.Client/ViewModels/ViewModelLocator.cs @@ -294,5 +294,14 @@ namespace BBWY.Client.ViewModels return s.ServiceProvider.GetRequiredService(); } } + + public PackSkuSplitConfigViewModel PackSkuConfig + { + get + { + using var s = sp.CreateScope(); + return s.ServiceProvider.GetRequiredService(); + } + } } } diff --git a/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml b/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml index 108f6f48..2ea7916f 100644 --- a/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml +++ b/BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml @@ -202,7 +202,7 @@ - + diff --git a/BBWY.Client/Views/BatchPurchase/PackSkuConfigWindow.xaml b/BBWY.Client/Views/BatchPurchase/PackSkuConfigWindow.xaml new file mode 100644 index 00000000..99738e9f --- /dev/null +++ b/BBWY.Client/Views/BatchPurchase/PackSkuConfigWindow.xaml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/BatchPurchase/PackSkuConfigWindow.xaml.cs b/BBWY.Client/Views/BatchPurchase/PackSkuConfigWindow.xaml.cs new file mode 100644 index 00000000..5a093730 --- /dev/null +++ b/BBWY.Client/Views/BatchPurchase/PackSkuConfigWindow.xaml.cs @@ -0,0 +1,44 @@ +using BBWY.Client.Models.QiKu; +using BBWY.Client.ViewModels; +using BBWY.Controls; +using System.Collections.Generic; + +namespace BBWY.Client.Views.BatchPurchase +{ + /// + /// PackSkuConfigWindow.xaml 的交互逻辑 + /// + public partial class PackSkuConfigWindow : BWindow + { + private PackSkuSplitConfigViewModel vm; + + public PackSkuConfigWindow(IList list) + { + InitializeComponent(); + vm = this.DataContext as PackSkuSplitConfigViewModel; + vm.SetData(list); + + this.Loaded += PackSkuConfigWindow_Loaded; + this.Unloaded += PackSkuConfigWindow_Unloaded; + } + + private void PackSkuConfigWindow_Unloaded(object sender, System.Windows.RoutedEventArgs e) + { + GalaSoft.MvvmLight.Messaging.Messenger.Default.Unregister(this); + } + + private void PackSkuConfigWindow_Loaded(object sender, System.Windows.RoutedEventArgs e) + { + GalaSoft.MvvmLight.Messaging.Messenger.Default.Register(this, "PackSkuConfigWindowClose", (r) => + { + this.DialogResult = r; + this.Close(); + }); + } + + public IList GetPackSkuConfigList() + { + return vm.GetPackSkuConfigList(); + } + } +} diff --git a/BBWY.Client/Views/BatchPurchase/PackSkuSplitCountAndStoreWindow.xaml b/BBWY.Client/Views/BatchPurchase/PackSkuSplitCountAndStoreWindow.xaml new file mode 100644 index 00000000..8ada0b01 --- /dev/null +++ b/BBWY.Client/Views/BatchPurchase/PackSkuSplitCountAndStoreWindow.xaml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/BatchPurchase/PackSkuSplitCountAndStoreWindow.xaml.cs b/BBWY.Client/Views/BatchPurchase/PackSkuSplitCountAndStoreWindow.xaml.cs new file mode 100644 index 00000000..b00651f8 --- /dev/null +++ b/BBWY.Client/Views/BatchPurchase/PackSkuSplitCountAndStoreWindow.xaml.cs @@ -0,0 +1,64 @@ +using BBWY.Client.Models; +using BBWY.Controls; +using System.Collections.Generic; +using System.Linq; +using System.Windows; + +namespace BBWY.Client.Views.BatchPurchase +{ + /// + /// PackSkuSplitCountAndStoreWindow.xaml 的交互逻辑 + /// + public partial class PackSkuSplitCountAndStoreWindow : BWindow + { + public int Quantity { get; set; } + + public StoreResponse Store { get; set; } + + private IList storeList; + + public PackSkuSplitCountAndStoreWindow(int quantity, StoreResponse store, IList storeList) + { + InitializeComponent(); + this.Quantity = quantity; + this.Store = store; + this.storeList = storeList; + this.Loaded += PackSkuSplitCountAndStoreWindow_Loaded; + } + + private void PackSkuSplitCountAndStoreWindow_Loaded(object sender, System.Windows.RoutedEventArgs e) + { + this.txtQuantity.Text = Quantity.ToString(); + this.cbx_stroeList.ItemsSource = storeList; + if (Store != null) + this.cbx_stroeList.SelectedItem = storeList.FirstOrDefault(s => s.Id == Store.Id); + else + this.cbx_stroeList.SelectedItem = storeList.FirstOrDefault(); + } + + private void btn_save_Click(object sender, System.Windows.RoutedEventArgs e) + { + if (!int.TryParse(txtQuantity.Text, out int q)) + { + MessageBox.Show("件数不正确", "提示"); + return; + } + if (q <= 0) + { + MessageBox.Show("件数不正确", "提示"); + return; + } + if (cbx_stroeList.SelectedItem == null) + { + MessageBox.Show("请选择一个仓库", "提示"); + return; + } + + this.Quantity = q; + this.Store = cbx_stroeList.SelectedItem as StoreResponse; + + this.DialogResult = true; + this.Close(); + } + } +} diff --git a/BBWY.Client/Views/MainWindow.xaml b/BBWY.Client/Views/MainWindow.xaml index 1c7172c2..ad6b9b1e 100644 --- a/BBWY.Client/Views/MainWindow.xaml +++ b/BBWY.Client/Views/MainWindow.xaml @@ -26,7 +26,7 @@ - + diff --git a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs index d1a87b2c..4fec3a72 100644 --- a/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs @@ -1,4 +1,5 @@ -using BBWY.Common.Models; +using BBWY.Common.Http; +using BBWY.Common.Models; using BBWY.Server.Model; using BBWY.Server.Model.Db; using BBWY.Server.Model.Db.QK; @@ -9,6 +10,7 @@ using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; +using System.Net.Http; using System.Text; using System.Threading.Tasks; using Yitter.IdGenerator; @@ -19,18 +21,19 @@ namespace BBWY.Server.Business { private ProductBusiness productBusiness; private IEnumerable platformSDKBusinessList; - - + //private TaskSchedulerManager taskSchedulerManager; + private RestApiService restApiService; public BatchPurchaseBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, ProductBusiness productBusiness, - IEnumerable platformSDKBusinessList) : base(fsql, nLogManager, idGenerator) + IEnumerable platformSDKBusinessList, + RestApiService restApiService) : base(fsql, nLogManager, idGenerator) { this.productBusiness = productBusiness; this.platformSDKBusinessList = platformSDKBusinessList; - + this.restApiService = restApiService; } /// @@ -218,6 +221,7 @@ namespace BBWY.Server.Business var successSkuIdList = new List(); var failSkuList = new List(); + var qikuPackSkuConfigRequestList = new List(); var extJArray = JsonConvert.DeserializeObject(request.Extensions); var purchaseGroups = request.ProductParamList.GroupBy(p => p.PurchaserId); @@ -292,6 +296,10 @@ namespace BBWY.Server.Business List updatePurchaseTimeSchemeIdList = productParamList.Select(p => p.BelongPurchaseSchemeId).Distinct().ToList(); List insertPurchaseOrderSkuList = new List(); + List skuPackConfigList = null; + if (purchasePlatform == Enums.Platform.拳探) + skuPackConfigList = new List(); + foreach (var belongSkuGroup in belongSkuGroups) { var firstProductParam = belongSkuGroup.FirstOrDefault(); @@ -321,6 +329,26 @@ namespace BBWY.Server.Business CreateTime = DateTime.Now }; insertPurchaseOrderSkuList.Add(purchaseOrderSku); + + if (purchasePlatform == Enums.Platform.拳探) + { + var skuPackConfig = request.PackSkuConfigList?.FirstOrDefault(s => s.SkuId == firstProductParam.BelongSkuId); + if (skuPackConfig != null) + { + skuPackConfigList.Add(new + { + skuId = firstProductParam.BelongSkuId, + skuCount = skuPackConfig.PurchaseCount, + markMessage = string.Empty, + wareHourses = skuPackConfig.PackSkuSplitConfigList.Select(x => new + { + wareId = x.Store.Id, + wareName = x.Store.Name, + count = x.PackCount + }) + }); + } + } } var purchaseOrderV2 = new PurchaseOrderV2() @@ -358,6 +386,19 @@ namespace BBWY.Server.Business fsql.Update(updatePurchaseTimeSchemeIdList).Set(p => p.LastPurchaseTime, DateTime.Now).ExecuteAffrows(); }); successSkuIdList.AddRange(belongSkuGroups.Select(g => g.Key)); + + if (purchasePlatform == Enums.Platform.拳探) + { + qikuPackSkuConfigRequestList.Add(new + { + orderId = purchaseOrderV2.Id, + shopId = request.ShopId.ToString(), + originShopName = request.ShopName, + userName = purchaseAccount.AccountName, + platform = Enums.Platform.拳探, + purchaseTaskModels = skuPackConfigList + }); + } } catch (Exception ex) { @@ -370,6 +411,30 @@ namespace BBWY.Server.Business } } + if (qikuPackSkuConfigRequestList.Count() > 0) + { + Task.Factory.StartNew(() => + { + foreach (var qikuPackSkuConfigRequest in qikuPackSkuConfigRequestList) + { + try + { + var qikuResponse = restApiService.SendRequest("http://qiku.qiyue666.com/", + "api/PackPurchaseTask/PublicPurchaseTask", + qikuPackSkuConfigRequest, + null, + HttpMethod.Post); + if (qikuResponse.StatusCode != System.Net.HttpStatusCode.OK) + throw new Exception(qikuResponse.Content); + } + catch (Exception ex) + { + nLogManager.GetLogger($"发布打包任务-{request.ShopName}").Error(ex, JsonConvert.SerializeObject(qikuPackSkuConfigRequest)); + } + } + }); + } + return new BatchCreareOrderResponse() { FailSkuList = failSkuList, diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/BatchPurchaseCreateOrderRequest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/BatchPurchaseCreateOrderRequest.cs index c6a8e359..df809592 100644 --- a/BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/BatchPurchaseCreateOrderRequest.cs +++ b/BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/BatchPurchaseCreateOrderRequest.cs @@ -1,4 +1,6 @@ -namespace BBWY.Server.Model.Dto +using System.Collections.Generic; + +namespace BBWY.Server.Model.Dto { public class BatchPurchaseCreateOrderRequest : BatchPurchasePreviewOrderRequest { @@ -18,6 +20,9 @@ public string AutoPay { get; set; } - + /// + /// 打包设置 + /// + public IList PackSkuConfigList { get; set; } } } diff --git a/BBWY.Server.Model/Dto/Request/QiKu/PackSkuConfigRequest.cs b/BBWY.Server.Model/Dto/Request/QiKu/PackSkuConfigRequest.cs new file mode 100644 index 00000000..6c3e9256 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/QiKu/PackSkuConfigRequest.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; + +namespace BBWY.Server.Model.Dto +{ + public class PackSkuConfigRequest + { + public PackSkuConfigRequest() + { + + } + + /// + /// 店铺Sku + /// + public string SkuId { get; set; } + + /// + /// 采购数量 + /// + public int PurchaseCount { get; set; } + + + public IList PackSkuSplitConfigList { get; set; } + } + + public class PackSkuSplitConfigRequest + { + public int Index { get; set; } + + public int PackCount { get; set; } + + public StoreRequest Store { get; set; } + } +} diff --git a/BBWY.Server.Model/Dto/Request/Stock/StoreRequest.cs b/BBWY.Server.Model/Dto/Request/Stock/StoreRequest.cs new file mode 100644 index 00000000..91b053b4 --- /dev/null +++ b/BBWY.Server.Model/Dto/Request/Stock/StoreRequest.cs @@ -0,0 +1,9 @@ +namespace BBWY.Server.Model.Dto +{ + public class StoreRequest + { + public string Id { get; set; } + + public string Name { get; set; } + } +}