From b5ea53a85873202aaf383ea516c6205bd952c0d3 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 1 Aug 2023 20:52:59 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E8=AE=A2=E5=8D=95sku?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/OrderController.cs | 22 +++++
BBWY.Server.Business/Order/OrderBusiness.cs | 80 +++++++++++++++++++
.../Dto/Request/Order/QueryOrderSkuRequest.cs | 23 ++++++
.../Response/Order/ExportOrderSkuResponse.cs | 39 +++++++++
4 files changed, 164 insertions(+)
create mode 100644 BBWY.Server.Model/Dto/Request/Order/QueryOrderSkuRequest.cs
create mode 100644 BBWY.Server.Model/Dto/Response/Order/ExportOrderSkuResponse.cs
diff --git a/BBWY.Server.API/Controllers/OrderController.cs b/BBWY.Server.API/Controllers/OrderController.cs
index d5590c07..5d9bdb61 100644
--- a/BBWY.Server.API/Controllers/OrderController.cs
+++ b/BBWY.Server.API/Controllers/OrderController.cs
@@ -144,5 +144,27 @@ namespace BBWY.Server.API.Controllers
{
return orderBusiness.SDGroupPullOrder(request);
}
+
+ ///
+ /// 查询订单SKU列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public ExportOrderSkuListResponse QueryOrderSkuList([FromBody] QueryOrderSkuRequest request)
+ {
+ return orderBusiness.QueryOrderSkuList(request);
+ }
+
+ ///
+ /// 导出订单SKU列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public IList ExportOrderSkuList([FromBody] ExportOrderSkuRequest request)
+ {
+ return orderBusiness.ExportOrderSkuList(request);
+ }
}
}
diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs
index 59f0c485..870349cf 100644
--- a/BBWY.Server.Business/Order/OrderBusiness.cs
+++ b/BBWY.Server.Business/Order/OrderBusiness.cs
@@ -33,6 +33,9 @@ namespace BBWY.Server.Business
private Lazy freeSqlMultiDBManagerLazy;
private FreeSqlMultiDBManager freeSqlMultiDBManager => freeSqlMultiDBManagerLazy.Value;
+ private Lazy venderBusinessLazy;
+ private VenderBusiness venderBusiness => venderBusinessLazy.Value;
+
private IMemoryCache memoryCache;
private static TimeSpan sdGroupExpirationTimeSpan = TimeSpan.FromMinutes(20);
@@ -48,6 +51,7 @@ namespace BBWY.Server.Business
this.memoryCache = memoryCache;
freeSqlMultiDBManagerLazy = new Lazy(() => serviceProvider.GetService());
productBusinessLazy = new Lazy(() => serviceProvider.GetService());
+ venderBusinessLazy = new Lazy(() => serviceProvider.GetService());
}
private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest)
@@ -1102,5 +1106,81 @@ namespace BBWY.Server.Business
}
return orderResponse;
}
+
+
+ private ISelect GetQueryOrderSkuListConditions(ExportOrderSkuRequest request)
+ {
+ var select = fsql.Select()
+ .InnerJoin((osku, o, ocd, po, p) => osku.OrderId == o.Id)
+ .InnerJoin((osku, o, ocd, po, p) => osku.OrderId == ocd.OrderId && osku.SkuId == ocd.SkuId)
+ .InnerJoin((osku, o, ocd, po, p) => ocd.PurchaseOrderPKId == po.Id)
+ .LeftJoin((osku, o, ocd, po, p) => osku.ProductId == p.Id)
+ .WhereIf(request.ShopIds != null && request.ShopIds.Count() > 0, (osku, o, ocd, po, p) => request.ShopIds.Contains(o.ShopId))
+ .WhereIf(request.PurchasePlatform != null, (osku, o, ocd, po, p) => po.PurchasePlatform == request.PurchasePlatform)
+ .Where((osku, o, ocd, po, p) => o.StartTime >= request.StartTime &&
+ o.StartTime <= request.EndTime &&
+ o.OrderState != Enums.OrderState.已取消)
+ .OrderByDescending((osku, o, ocd, po, p) => o.StartTime);
+ return select;
+ }
+
+ private Expression> GetQueryOrderSkuListField()
+ {
+ return (osku, o, ocd, po, p) => new ExportOrderSkuResponse()
+ {
+ ItemTotal = osku.ItemTotal,
+ OrderId = osku.OrderId,
+ PurchaseFreight = ocd.PurchaseFreight,
+ PurchaseSkuAmount = ocd.SkuAmount,
+ ShopId = o.ShopId,
+ Sku = osku.SkuId,
+ SkuPrice = osku.Price,
+ Spu = osku.ProductId,
+ SpuName = p.Title,
+ StartTime = o.StartTime,
+ StorageType = o.StorageType
+ };
+ }
+
+ public ExportOrderSkuListResponse QueryOrderSkuList(QueryOrderSkuRequest request)
+ {
+ request.EndTime = request.EndTime.Date.AddDays(1).AddSeconds(-1);
+ var select = GetQueryOrderSkuListConditions(request);
+ var list = select.Count(out long count).Page(request.PageIndex, request.PageSize).ToList(GetQueryOrderSkuListField());
+
+ if (list.Count() > 0)
+ {
+ var shops = venderBusiness.GetShopList();
+ foreach (var item in list)
+ {
+ var shopId = item.ShopId.ToString();
+ item.ShopName = shops.Where(s => s.ShopId == shopId).FirstOrDefault()?.ShopName;
+ }
+ }
+
+ return new ExportOrderSkuListResponse()
+ {
+ Count = count,
+ ItemList = list
+ };
+ }
+
+ public IList ExportOrderSkuList(ExportOrderSkuRequest request)
+ {
+ request.EndTime = request.EndTime.Date.AddDays(1).AddSeconds(-1);
+ var select = GetQueryOrderSkuListConditions(request);
+ var list = select.ToList(GetQueryOrderSkuListField());
+
+ if (list.Count() > 0)
+ {
+ var shops = venderBusiness.GetShopList();
+ foreach (var item in list)
+ {
+ var shopId = item.ShopId.ToString();
+ item.ShopName = shops.Where(s => s.ShopId == shopId).FirstOrDefault()?.ShopName;
+ }
+ }
+ return list;
+ }
}
}
diff --git a/BBWY.Server.Model/Dto/Request/Order/QueryOrderSkuRequest.cs b/BBWY.Server.Model/Dto/Request/Order/QueryOrderSkuRequest.cs
new file mode 100644
index 00000000..b013c54f
--- /dev/null
+++ b/BBWY.Server.Model/Dto/Request/Order/QueryOrderSkuRequest.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace BBWY.Server.Model.Dto
+{
+ public class QueryOrderSkuRequest : ExportOrderSkuRequest
+ {
+ public int PageIndex { get; set; }
+
+ public int PageSize { get; set; }
+ }
+
+ public class ExportOrderSkuRequest
+ {
+ public List ShopIds { get; set; }
+
+ public Enums.Platform? PurchasePlatform { get; set; }
+
+ public DateTime StartTime { get; set; }
+
+ public DateTime EndTime { get; set; }
+ }
+}
diff --git a/BBWY.Server.Model/Dto/Response/Order/ExportOrderSkuResponse.cs b/BBWY.Server.Model/Dto/Response/Order/ExportOrderSkuResponse.cs
new file mode 100644
index 00000000..a0d779e6
--- /dev/null
+++ b/BBWY.Server.Model/Dto/Response/Order/ExportOrderSkuResponse.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+
+namespace BBWY.Server.Model.Dto
+{
+ public class ExportOrderSkuResponse
+ {
+ public string OrderId { get; set; }
+
+ public DateTime? StartTime { get; set; }
+
+ public long ShopId { get; set; }
+
+ public string ShopName { get; set; }
+
+ public string Spu { get; set; }
+
+ public string Sku { get; set; }
+
+ public Enums.StorageType? StorageType { get; set; }
+
+ public decimal? PurchaseSkuAmount { get; set; }
+
+ public decimal? PurchaseFreight { get; set; }
+
+ public decimal? SkuPrice { get; set; }
+
+ public int? ItemTotal { get; set; }
+
+ public string SpuName { get; set; }
+ }
+
+ public class ExportOrderSkuListResponse
+ {
+ public long Count { get; set; }
+
+ public IList ItemList { get; set; }
+ }
+}
From b6056aa3fb975878732ced5d8b8b8eb8a44d6c5b Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Tue, 1 Aug 2023 23:42:02 +0800
Subject: [PATCH 2/3] 10162
---
BBWY.Client/APIServices/OrderService.cs | 32 +++
BBWY.Client/GlobalContext.cs | 2 +-
.../Response/Order/ExportOrderSkuResponse.cs | 46 ++++
BBWY.Client/ViewModels/MainViewModel.cs | 3 +-
.../Order/ExportOrderSkuViewModel.cs | 202 ++++++++++++++++++
BBWY.Client/ViewModels/ViewModelLocator.cs | 9 +
.../Views/Order/ExportOrderSkuView.xaml | 167 +++++++++++++++
.../Views/Order/ExportOrderSkuView.xaml.cs | 26 +++
8 files changed, 485 insertions(+), 2 deletions(-)
create mode 100644 BBWY.Client/Models/APIModel/Response/Order/ExportOrderSkuResponse.cs
create mode 100644 BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs
create mode 100644 BBWY.Client/Views/Order/ExportOrderSkuView.xaml
create mode 100644 BBWY.Client/Views/Order/ExportOrderSkuView.xaml.cs
diff --git a/BBWY.Client/APIServices/OrderService.cs b/BBWY.Client/APIServices/OrderService.cs
index 78fe11a0..fadd1f85 100644
--- a/BBWY.Client/APIServices/OrderService.cs
+++ b/BBWY.Client/APIServices/OrderService.cs
@@ -278,5 +278,37 @@ namespace BBWY.Client.APIServices
shop.AppToken
}, null, HttpMethod.Post);
}
+
+ public ApiResponse QueryOrderSkuList(DateTime startDate,
+ DateTime endDate,
+ int? purchasePlatform,
+ IList shopIds,
+ int pageIndex,
+ int pageSize)
+ {
+ return SendRequest(globalContext.BBYWApiHost, "api/order/queryorderskulist", new
+ {
+ shopIds,
+ purchasePlatform,
+ startTime = startDate,
+ endTime = endDate,
+ pageIndex,
+ pageSize
+ }, null, HttpMethod.Post);
+ }
+
+ public ApiResponse> ExportOrderSkuList(DateTime startDate,
+ DateTime endDate,
+ int? purchasePlatform,
+ IList shopIds)
+ {
+ return SendRequest>(globalContext.BBYWApiHost, "api/order/exportorderskulist", new
+ {
+ shopIds,
+ purchasePlatform,
+ startTime = startDate,
+ endTime = endDate
+ }, null, HttpMethod.Post);
+ }
}
}
diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs
index ed414065..f244d15a 100644
--- a/BBWY.Client/GlobalContext.cs
+++ b/BBWY.Client/GlobalContext.cs
@@ -13,7 +13,7 @@ namespace BBWY.Client
{
ShopServiceGroupList = new List();
ShopServiceGroupLowerList = new List();
- ClientVersion = "10161";
+ ClientVersion = "10162";
}
private User user;
diff --git a/BBWY.Client/Models/APIModel/Response/Order/ExportOrderSkuResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/ExportOrderSkuResponse.cs
new file mode 100644
index 00000000..42b45ba4
--- /dev/null
+++ b/BBWY.Client/Models/APIModel/Response/Order/ExportOrderSkuResponse.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+
+namespace BBWY.Client.Models
+{
+ public class ExportOrderSkuResponse
+ {
+ public string OrderId { get; set; }
+
+ public DateTime? StartTime { get; set; }
+
+ public long ShopId { get; set; }
+
+ public string ShopName { get; set; }
+
+ public string Spu { get; set; }
+
+ public string Sku { get; set; }
+
+ public StorageType? StorageType { get; set; }
+
+ public decimal? PurchaseSkuAmount { get; set; }
+
+ public decimal? PurchaseFreight { get; set; }
+
+ public decimal? PurchaseAmount { get { return PurchaseSkuAmount + PurchaseFreight; } }
+
+ public decimal? SkuPrice { get; set; }
+
+ public int? ItemTotal { get; set; }
+
+ public string SpuName { get; set; }
+
+ public override string ToString()
+ {
+ return $"{StartTime},{ShopName},{OrderId},{Spu},{Sku},{StorageType},{PurchaseAmount},{SkuPrice},{ItemTotal},{SpuName}";
+ }
+ }
+
+ public class ExportOrderSkuListResponse
+ {
+ public long Count { get; set; }
+
+ public IList ItemList { get; set; }
+ }
+}
diff --git a/BBWY.Client/ViewModels/MainViewModel.cs b/BBWY.Client/ViewModels/MainViewModel.cs
index 30820a6f..42fb8215 100644
--- a/BBWY.Client/ViewModels/MainViewModel.cs
+++ b/BBWY.Client/ViewModels/MainViewModel.cs
@@ -228,7 +228,8 @@ namespace BBWY.Client.ViewModels
ChildList = new List()
{
new MenuModel(){ Name="采购审计",Url="/Views/FinancialTerminal/ProcurementAudit.xaml" },
- new MenuModel(){ Name="费用矫正",Url="/Views/BillCorrection/BillCorrectionView.xaml" }
+ new MenuModel(){ Name="费用矫正",Url="/Views/BillCorrection/BillCorrectionView.xaml" },
+ new MenuModel(){ Name="订单导出",Url="/Views/Order/ExportOrderSkuView.xaml" }
}
}));
}
diff --git a/BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs b/BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs
new file mode 100644
index 00000000..ac8146f4
--- /dev/null
+++ b/BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs
@@ -0,0 +1,202 @@
+using BBWY.Client.APIServices;
+using BBWY.Client.Models;
+using BBWY.Common.Models;
+using BBWY.Controls;
+using GalaSoft.MvvmLight.Command;
+using Microsoft.Win32;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Input;
+
+namespace BBWY.Client.ViewModels
+{
+ public class ExportOrderSkuViewModel : BaseVM, IDenpendency
+ {
+ private DateTime startDate;
+ private DateTime endDate;
+
+ private GlobalContext globalContext;
+ private KVModel selectedPlatform;
+ private int pageIndex;
+ private int pageSize;
+ private long totalCount;
+ private bool isLoading;
+
+ private OrderService orderService;
+
+ public IList DepartmentList { get; set; }
+
+ public IList ShopList { get; set; }
+
+ public IList PlatformList { get; set; }
+
+ public IList ExportSkuList { get; set; }
+
+ public DateTime StartDate { get => startDate; set { Set(ref startDate, value); } }
+ public DateTime EndDate { get => endDate; set { Set(ref endDate, value); } }
+
+ public KVModel SelectedPlatform { get => selectedPlatform; set { Set(ref selectedPlatform, value); } }
+
+ public ICommand SearchCommand { get; set; }
+
+ public ICommand ExportCommand { get; set; }
+
+ public ICommand OrderPageIndexChangedCommand { get; set; }
+
+ public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } }
+ public int PageSize { get => pageSize; set { Set(ref pageSize, value); } }
+
+ public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
+
+ public long TotalCount { get => totalCount; set { Set(ref totalCount, value); } }
+
+ public ExportOrderSkuViewModel(GlobalContext globalContext, OrderService orderService)
+ {
+ this.orderService = orderService;
+
+ DepartmentList = new ObservableCollection();
+ ShopList = new ObservableCollection();
+ PlatformList = new ObservableCollection();
+ ExportSkuList = new ObservableCollection();
+ SearchCommand = new RelayCommand(Search);
+ ExportCommand = new RelayCommand(Export);
+ OrderPageIndexChangedCommand = new RelayCommand(p =>
+ {
+ //this.PageIndex = p.PageIndex;
+ Task.Factory.StartNew(() => SearchCore(p.PageIndex));
+ });
+
+ var platformEnumValues = Enum.GetValues(typeof(Platform));
+ foreach (var ev in platformEnumValues)
+ {
+ var p = (Platform)ev;
+ PlatformList.Add(new KVModel()
+ {
+ Key = p.ToString(),
+ Value = ((int)p).ToString()
+ });
+ }
+
+ this.globalContext = globalContext;
+ LoadDepartment();
+ StartDate = DateTime.Now.Date;
+ EndDate = DateTime.Now.Date;
+ PageIndex = 1;
+ PageSize = 20;
+ }
+
+ private void LoadDepartment()
+ {
+ var dlist = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(globalContext.User.DepartmentList));
+ foreach (var d in dlist)
+ {
+ d.IsSelected = false;
+ DepartmentList.Add(d);
+ d.OnIsSelectedChanged = OnDeparmentSelectionChanged;
+ }
+ ShopList.Clear();
+ }
+
+ private void OnDeparmentSelectionChanged()
+ {
+ ShopList.Clear();
+ foreach (var d in DepartmentList)
+ {
+ if (!d.IsSelected)
+ continue;
+ foreach (var s in d.ShopList)
+ {
+ s.IsSelected = false;
+ ShopList.Add(s);
+ }
+ }
+ }
+
+ private void Search()
+ {
+ PageIndex = 1;
+ Task.Factory.StartNew(() => SearchCore(PageIndex));
+ }
+
+ private void SearchCore(int pageIndex)
+ {
+ IsLoading = true;
+ int? purchasePlatform = null;
+ if (SelectedPlatform != null)
+ purchasePlatform = int.Parse(SelectedPlatform.Value);
+ var response = orderService.QueryOrderSkuList(StartDate,
+ EndDate,
+ purchasePlatform,
+ ShopList.Where(s => s.IsSelected).Select(s => s.ShopId).ToList(),
+ pageIndex,
+ PageSize);
+ IsLoading = false;
+ TotalCount = 0;
+ if (!response.Success)
+ {
+ App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示"));
+ return;
+ }
+ TotalCount = response.Data.Count;
+ App.Current.Dispatcher.Invoke(() =>
+ {
+ ExportSkuList.Clear();
+ foreach (var item in response.Data.ItemList)
+ ExportSkuList.Add(item);
+ });
+
+ }
+
+ private void Export()
+ {
+ var sfd = new SaveFileDialog() { Filter = "csv files(*.csv)|*.csv" };
+ if (sfd.ShowDialog() != true)
+ return;
+
+ var ssaveFileName = sfd.FileName;
+
+ int? purchasePlatform = null;
+ if (SelectedPlatform != null)
+ purchasePlatform = int.Parse(SelectedPlatform.Value);
+ IsLoading = true;
+ Task.Factory.StartNew(() => orderService.ExportOrderSkuList(StartDate,
+ EndDate,
+ purchasePlatform,
+ ShopList.Where(s => s.IsSelected).Select(s => s.ShopId).ToList())).ContinueWith(t =>
+ {
+ var response = t.Result;
+
+ if (!response.Success)
+ {
+ IsLoading = false;
+ App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示"));
+ return;
+ }
+
+ try
+ {
+ var list = response.Data.Select(x => x.ToString()).ToList();
+ list.Insert(0, "开始时间,店铺名称,订单Id,SPU,SKU,仓储类型,采购成本(货款+运费),单价,数量,商品标题");
+ System.IO.File.WriteAllLines(ssaveFileName, list, Encoding.UTF8);
+ App.Current.Dispatcher.Invoke(() => MessageBox.Show("导出完成", "导出"));
+ }
+ catch (Exception ex)
+ {
+ App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "导出"));
+ return;
+ }
+ finally
+ {
+ IsLoading = false;
+ }
+ });
+
+ }
+ }
+}
diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs
index 73bd50ee..d71620b0 100644
--- a/BBWY.Client/ViewModels/ViewModelLocator.cs
+++ b/BBWY.Client/ViewModels/ViewModelLocator.cs
@@ -367,6 +367,15 @@ namespace BBWY.Client.ViewModels
}
}
+ public ExportOrderSkuViewModel ExportOrderSkuVM
+ {
+ get
+ {
+ using var s = sp.CreateScope();
+ return s.ServiceProvider.GetRequiredService();
+ }
+ }
+
//public ShopSealBoxListViewModel ShopSealBoxListVM
//{
// get
diff --git a/BBWY.Client/Views/Order/ExportOrderSkuView.xaml b/BBWY.Client/Views/Order/ExportOrderSkuView.xaml
new file mode 100644
index 00000000..9e147d35
--- /dev/null
+++ b/BBWY.Client/Views/Order/ExportOrderSkuView.xaml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BBWY.Client/Views/Order/ExportOrderSkuView.xaml.cs b/BBWY.Client/Views/Order/ExportOrderSkuView.xaml.cs
new file mode 100644
index 00000000..9ad5dfe9
--- /dev/null
+++ b/BBWY.Client/Views/Order/ExportOrderSkuView.xaml.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace BBWY.Client.Views.Order
+{
+ ///
+ /// ExportOrderSkuView.xaml 的交互逻辑
+ ///
+ public partial class ExportOrderSkuView : Page
+ {
+ public ExportOrderSkuView()
+ {
+ InitializeComponent();
+ }
+ }
+}
From 1cc322975c51df7cc5e04a0a0010ae8ad13e0a66 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Wed, 2 Aug 2023 01:35:54 +0800
Subject: [PATCH 3/3] 10163
---
BBWY.Client/GlobalContext.cs | 2 +-
BBWY.Client/Models/Shop/Shop.cs | 17 +++-
.../Order/ExportOrderSkuViewModel.cs | 25 ++++-
.../Views/Order/ExportOrderSkuView.xaml | 93 +++++++++----------
4 files changed, 85 insertions(+), 52 deletions(-)
diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs
index f244d15a..d6aa87d1 100644
--- a/BBWY.Client/GlobalContext.cs
+++ b/BBWY.Client/GlobalContext.cs
@@ -13,7 +13,7 @@ namespace BBWY.Client
{
ShopServiceGroupList = new List();
ShopServiceGroupLowerList = new List();
- ClientVersion = "10162";
+ ClientVersion = "10163";
}
private User user;
diff --git a/BBWY.Client/Models/Shop/Shop.cs b/BBWY.Client/Models/Shop/Shop.cs
index 0ebec5fa..b35a35df 100644
--- a/BBWY.Client/Models/Shop/Shop.cs
+++ b/BBWY.Client/Models/Shop/Shop.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
namespace BBWY.Client.Models
{
@@ -7,7 +8,19 @@ namespace BBWY.Client.Models
private bool isSelected;
private string shopName;
- public bool IsSelected { get => isSelected; set { Set(ref isSelected, value); } }
+ public bool IsSelected
+ {
+ get => isSelected; set
+ {
+ if (Set(ref isSelected, value))
+ {
+ OnIsSelectedChanged?.Invoke();
+ }
+ }
+ }
+
+ public Action OnIsSelectedChanged { get; set; }
+
///
/// 店铺Id
///
diff --git a/BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs b/BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs
index ac8146f4..de504727 100644
--- a/BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs
+++ b/BBWY.Client/ViewModels/Order/ExportOrderSkuViewModel.cs
@@ -27,6 +27,8 @@ namespace BBWY.Client.ViewModels
private int pageSize;
private long totalCount;
private bool isLoading;
+ private bool isShowAll_Shop;
+ private bool isShowAll_Department;
private OrderService orderService;
@@ -56,6 +58,10 @@ namespace BBWY.Client.ViewModels
public long TotalCount { get => totalCount; set { Set(ref totalCount, value); } }
+ public bool IsShowAll_Shop { get => isShowAll_Shop; set { Set(ref isShowAll_Shop, value); } }
+
+ public bool IsShowAll_Department { get => isShowAll_Department; set { Set(ref isShowAll_Department, value); } }
+
public ExportOrderSkuViewModel(GlobalContext globalContext, OrderService orderService)
{
this.orderService = orderService;
@@ -82,7 +88,7 @@ namespace BBWY.Client.ViewModels
Value = ((int)p).ToString()
});
}
-
+ IsShowAll_Department = IsShowAll_Shop = true;
this.globalContext = globalContext;
LoadDepartment();
StartDate = DateTime.Now.Date;
@@ -112,10 +118,17 @@ namespace BBWY.Client.ViewModels
continue;
foreach (var s in d.ShopList)
{
+ s.OnIsSelectedChanged = OnShopSelectionChanged;
s.IsSelected = false;
ShopList.Add(s);
}
}
+ IsShowAll_Department = !DepartmentList.Any(d => d.IsSelected);
+ }
+
+ private void OnShopSelectionChanged()
+ {
+ IsShowAll_Shop = !ShopList.Any(s => s.IsSelected);
}
private void Search()
@@ -130,10 +143,18 @@ namespace BBWY.Client.ViewModels
int? purchasePlatform = null;
if (SelectedPlatform != null)
purchasePlatform = int.Parse(SelectedPlatform.Value);
+ List shopIds = new List();
+ if (ShopList.Count() > 0)
+ {
+ if (ShopList.Any(s => s.IsSelected))
+ shopIds.AddRange(ShopList.Where(s => s.IsSelected).Select(s => s.ShopId));
+ else
+ shopIds.AddRange(ShopList.Select(s => s.ShopId));
+ }
var response = orderService.QueryOrderSkuList(StartDate,
EndDate,
purchasePlatform,
- ShopList.Where(s => s.IsSelected).Select(s => s.ShopId).ToList(),
+ shopIds,
pageIndex,
PageSize);
IsLoading = false;
diff --git a/BBWY.Client/Views/Order/ExportOrderSkuView.xaml b/BBWY.Client/Views/Order/ExportOrderSkuView.xaml
index 9e147d35..f752cfbb 100644
--- a/BBWY.Client/Views/Order/ExportOrderSkuView.xaml
+++ b/BBWY.Client/Views/Order/ExportOrderSkuView.xaml
@@ -12,7 +12,14 @@
mc:Ignorable="d"
d:DesignHeight="769" d:DesignWidth="1024"
DataContext="{Binding ExportOrderSkuVM,Source={StaticResource Locator}}"
- Title="ExportOrderSkuView">
+ Title="ExportOrderSkuView"
+ xmlns:converter="clr-namespace:HandyControl.Tools.Converter;assembly=HandyControl"
+ xmlns:interactivity="clr-namespace:HandyControl.Interactivity;assembly=HandyControl"
+ xmlns:ex="clr-namespace:HandyControl.Tools.Extension;assembly=HandyControl"
+ xmlns:langs="clr-namespace:HandyControl.Properties.Langs;assembly=HandyControl">
+
+
+
@@ -34,66 +41,58 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+ -->