using BBWY.Client.APIServices; using BBWY.Client.Models; using BBWY.Client.Views.PackTask; using BBWY.Common.Models; using GalaSoft.MvvmLight.Command; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Net.Mail; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using System.Linq; using System.Windows; using GalaSoft.MvvmLight.Messaging; namespace BBWY.Client.ViewModels { public class BatchPublishTaskViewModel : BaseVM, IDenpendency { private ObservableCollection batchPublishTasks; public ObservableCollection BatchPublishTasks { get => batchPublishTasks; set { Set(ref batchPublishTasks, value); } } // public ObservableCollection BatchPublishTasks; PackTaskService packTaskService; ProductService productService; GlobalContext globalContext; private bool isLoading = false; public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } public ICommand OpenSkuDetailCommand { get; set; } public ICommand CreateTaskCommand { get; set; } public BatchPublishTaskViewModel(PackTaskService packTaskService, ProductService productService, GlobalContext globalContext) { BatchPublishTasks = new ObservableCollection(); this.packTaskService = packTaskService; this.productService = productService; this.globalContext = globalContext; CreateTaskCommand = new RelayCommand(CreateTask); OpenSkuDetailCommand = new RelayCommand(OpenSkuDetail); } private void OpenSkuDetail(object param) { var paramList = (object[])param; // var orderId = paramList[0].ToString(); var skuId = paramList[0].ToString(); var url = $"https://item.jd.com/{skuId}.html"; try { System.Diagnostics.Process.Start("explorer.exe", url); } catch (Exception ex) { Clipboard.SetText(url); MessageBox.Show($"{ex.Message}\r\n调用浏览器失败,网页链接已复制到剪切板,请手动打开浏览器访问", "提示"); } } private void CreateTask(object obj) { foreach (var task in BatchPublishTasks) { string increateStr = ""; var increates = task.IncreateList.Where(i => i.IsSelected).Select(i => i.IncreateName); if (increates != null && increates.Count() > 0) { increateStr = string.Join(",", increates); } var createTaskModel = new Models.APIModel.Request.CreateTaskRequest { ProductNo = task.ProductNo, Logo = task.Logo, SkuName = task.SkuName, BrandName = task.BrandName, //Availability = (int)task.Availability, BasicPack = (int)task.BasicPack, SkuId = task.SkuId, CreateTime = DateTime.Now, Increment1 = increateStr, CertificatePosition = (int)task.CertificatePosition, PackType = (int)task.PackType, //MarkMessage = task.MarkMessage, PositionType = (int)task.PositionType, GoodsNumber = task.GoodsNumber, SkuGoodsTitle = task.SkuTitle, SkuCount = task.SkuCount, UserId = globalContext.User.Id.ToString(), ShopId = PurchaserId, //IsWorry = task.IsWorry, OrderId = orderId, Platform =platform, NeedBar = task.IsNeedBarCode == Need.需要, NeedCer = task.IsNeedCertificateModel == Need.需要 }; if (task.IsNeedBarCode == Need.需要) { if (task.BarCodeModel == null || task.BarCodeModel.Id <= 0) { new TipsWindow("请设置条形码模板").Show(); return; } createTaskModel.BarCodeId = task.BarCodeModel.Id; } if (task.IsNeedCertificateModel == Need.需要) { if (task.CertificateModel == null || task.CertificateModel.Count() <= 0) { new TipsWindow("请设置合格证模板").Show(); return; } createTaskModel.CerId =string.Join(",", task.CertificateModel.Where(c=>c.Id>0).Select(c=>c.Id));// } ApiResponse res = null; res = packTaskService.CreateTask(createTaskModel); if (!res.Success) { new TipsWindow(res.Msg); return; } } //var win = obj as System.Windows.Window; Messenger.Default.Send(true, "CloseBatchPublishTaskWindow"); //win.Close(); if (PublishTask != null) PublishTask(); } public Action PublishTask { get; set; } Platform platform; string orderId; string PurchaserId; public void AddSkus(Platform platform, string orderId, string PurchaserId, List purchaseOrderSkus) { BatchPublishTasks = new ObservableCollection(); this.platform = platform; this.orderId = orderId; this.PurchaserId = PurchaserId; BatchPublishTask model = null; IsLoading = true; foreach (var item in purchaseOrderSkus) { model = new BatchPublishTask(); model.productService = productService; model.packTaskService = packTaskService; model.SkuId = item.SkuId; model.SkuCount = item.Quantity.Value; model.Logo = item.Logo.Replace("80x80", "200x200"); model.SpuId = item.ProductId; model.SkuName = item.SkuTitle; model.SearchSku(item.SkuId); App.Current.Dispatcher.Invoke(() => { BatchPublishTasks.Add(model); }); } IsLoading = false; } } }