步步为盈
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
6.6 KiB

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<BatchPublishTask> batchPublishTasks;
public ObservableCollection<BatchPublishTask> BatchPublishTasks { get => batchPublishTasks; set { Set(ref batchPublishTasks, value); } }
// public ObservableCollection<BatchPublishTask> 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<BatchPublishTask>();
this.packTaskService = packTaskService;
this.productService = productService;
this.globalContext = globalContext;
CreateTaskCommand = new RelayCommand<object>(CreateTask);
OpenSkuDetailCommand = new RelayCommand<object>(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<object> 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<PurchaseOrderSku> purchaseOrderSkus)
{
BatchPublishTasks = new ObservableCollection<BatchPublishTask>();
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;
}
}
}