步步为盈
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.

189 lines
6.7 KiB

2 years ago
using BBWY.Client.APIServices;
using BBWY.Client.APIServices.QiKu;
2 years ago
using BBWY.Client.Models.APIModel;
using BBWY.Client.Models.PackTask;
using BBWY.Common.Models;
using BBWY.Controls;
using GalaSoft.MvvmLight.Command;
using Microsoft.Win32;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Input;
namespace BBWY.Client.ViewModels.TotalPackTask
{
public class PackUserSalaryViewModel : BaseVM, IDenpendency
{
public PackUserService packUserService;
2 years ago
public PackTaskService packTaskService;
private bool isLoading;
private DateTime startTime;
private DateTime endTime;
private int pageIndex = 1;
private int pageSize = 20;
private int orderCount;
private List<PackUserSalary> packUserSalaryList;
private string searchUserName;
public string SearchUserName { get => searchUserName; set { Set(ref searchUserName, value); } }
public List<PackUserSalary> PackUserSalaryList { get => packUserSalaryList; set { Set(ref packUserSalaryList, value); } }
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
public DateTime StartTime { get => startTime; set { Set(ref startTime, value); } }
public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } }
public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } }
public int PageSize { get => pageSize; set { Set(ref pageSize, value); } }
public int OrderCount { get => orderCount; set { Set(ref orderCount, value); } }
public ICommand SearchPackUserSalaryCommand { get; set; }
public ICommand ExportCommand { get; set; }
public ICommand OrderPageIndexChangedCommand { get; set; }
public ICommand SetSearchDateCommand { get; set; }
public PackUserSalaryViewModel(PackTaskService packTaskService, PackUserService packUserService)
2 years ago
{
this.packTaskService = packTaskService;
this.packUserService = packUserService;
2 years ago
OrderPageIndexChangedCommand = new RelayCommand<PageArgs>(p =>
{
LoadOrder(p.PageIndex);
});
SearchPackUserSalaryCommand = new RelayCommand(SearchPackUserSalary);
StartTime = DateTime.Now;
EndTime = DateTime.Now;
SearchPackUserSalary();
SetSearchDateCommand = new RelayCommand<int>(d =>
{
EndTime = d == 1 ? DateTime.Now.Date.AddDays(-1) : DateTime.Now;
StartTime = DateTime.Now.Date.AddDays(d * -1);
PageIndex = 1;
Task.Factory.StartNew(() => LoadOrder(1)); //点击日期查询订单
});
ExportCommand = new RelayCommand(Export);
2 years ago
}
private void LoadOrder(int pageIndex)
{
PageIndex = pageIndex;
SearchPackUserSalary();
}
private void SearchPackUserSalary()
{
PackUserSalaryList = new List<PackUserSalary>();
Task.Factory.StartNew(() =>
{
IsLoading = true;
var res = packTaskService.TotalPackUserSalary(searchUserName, StartTime, EndTime, PageIndex, PageSize);
if (res != null && res.Success)
{
OrderCount = res.Data.TotalCount;
App.Current.Dispatcher.Invoke(() =>
{
PackUserSalaryList = res.Data.PackUserSalaries;
});
//foreach (var packUserSalary in res.Data.PackUserSalaries)
//{
// App.Current.Dispatcher.Invoke(() =>
// {
// PackUserSalaryList.Add(packUserSalary);
// });
//}
}
else
{
App.Current.Dispatcher.Invoke(() =>
{
PackUserSalaryList = new List<PackUserSalary>();
});
}
IsLoading = false;
});
}
private void Export()
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "csv files(*.csv)|*.csv";
var result = save.ShowDialog();
if (result == null || !result.Value)
{
return;
}
string fileName = save.FileName;
Task.Factory.StartNew(() =>
{
IsLoading = true;
var res = packTaskService.TotalPackUserSalary(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据
if (res.Success)
{
//string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注";
List<string> exportList = new List<string>();
string title = "日期,花名,总收益";
if (res.Data.TotalCount > 0)
{
foreach (var item in res.Data.PackUserSalaries[0].IncomeItems)
{
title += $",{item.Name}";
}
exportList.Add(title);
foreach (var packUserSalary in res.Data.PackUserSalaries)
{
List<string> rowList =new List<string>();
rowList.Add(packUserSalary.Date.ToString("yyyy-MM-dd"));
rowList.Add(packUserSalary.PackUserName);
rowList.Add(packUserSalary.TotalIncome.ToString("0.00"));
foreach (var incomeItem in packUserSalary.IncomeItems)
{
rowList.Add(incomeItem.TotalPrice.ToString() );
}
exportList.Add(string.Join(",", rowList));
}
}
//var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList();
//excelList.Insert(0, title);
System.IO.File.WriteAllLines(fileName, exportList, Encoding.UTF8);
}
IsLoading = false;
});
}
}
}