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/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseCreateNewOrderViewModel.cs index b50bd3f5..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,40 +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; - } - - var packWindow = new PackSkuConfigWindow(ProductSkuWithSchemeList.Select(ps => new Models.QiKu.PackSkuConfig() - { - Logo = ps.Logo, - SkuId = ps.SkuId, - Title = ps.Title, - PurchaseCount = ps.Quantity - }).ToList()); - - if (packWindow.ShowDialog() != true) - return; - var packSkuConfigList = packWindow.GetPackSkuConfigList(); - - Console.WriteLine(packSkuConfigList); - } + } } diff --git a/BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml b/BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml index 6c1dc8a0..b208bd6e 100644 --- a/BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml +++ b/BBWY.Client/Views/BatchPurchase/BatchCreateNewPurchaseOrder.xaml @@ -345,10 +345,10 @@ - - + + 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 628c6e6b..5b4517d1 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); @@ -279,6 +283,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(); @@ -308,6 +316,23 @@ namespace BBWY.Server.Business CreateTime = DateTime.Now }; insertPurchaseOrderSkuList.Add(purchaseOrderSku); + + if (purchasePlatform == Enums.Platform.拳探) + { + var skuPackConfig = request.PackSkuConfigList.FirstOrDefault(s => s.SkuId == firstProductParam.BelongSkuId); + 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() @@ -345,6 +370,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) { @@ -357,6 +395,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; } + } +}