Browse Source

多商家

yijia
shanji 2 years ago
parent
commit
39d1bc2703
  1. 1
      BBWYB.Client/App.xaml.cs
  2. 2
      BBWYB.Client/GlobalContext.cs
  3. 10
      BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs
  4. 36
      BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs
  5. 28
      BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs
  6. 13
      BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs
  7. 16
      BBWYB.Client/ViewModels/MainViewModel.cs
  8. 18
      BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
  9. 4
      BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs
  10. 229
      BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs
  11. 228
      BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs
  12. 2
      BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml
  13. 19
      BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml.cs
  14. 51
      BBWYB.Client/Views/Ware/WareManager.xaml
  15. 4
      BBWYB.Client/appsettings.json
  16. 37
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  17. 5
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs
  18. 16
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
  19. 6
      BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs

1
BBWYB.Client/App.xaml.cs

@ -79,6 +79,7 @@ namespace BBWYB.Client
serviceCollection.AddTransient<OnlinePurchaseViewModel>();
serviceCollection.AddTransient<EditPriceViewModel>();
serviceCollection.AddTransient<UpdatePurchaseTaskViewModel>();
serviceCollection.AddTransient<BindingPurchaseProductViewModel>();
serviceCollection.AddMapper(new MappingProfile());
ServiceProvider = serviceCollection.BuildServiceProvider();
base.OnStartup(e);

2
BBWYB.Client/GlobalContext.cs

@ -22,7 +22,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
BBWYBApiVersion = "10030";
BBWYBApiVersion = "10031";
}
private User user;

10
BBWYB.Client/Models/APIModel/Response/PurchaseSchemeProductResponse.cs

@ -13,6 +13,16 @@ namespace BBWYB.Client.Models
public string SkuId { get; set; }
public long SkuPurchaseSchemeId { get; set; }
public long UserId { get; set; }
public string PurchaserName { get; set; }
public string PurchaserId { get; set; }
public string PurchaserId2 { get; set; }
public string PurchaserLocation { get; set; }
public Platform? PurchasePlatform { get; set; }
public List<PurchaseSchemeProductSkuResponse> PurchaseSchemeProductSkuList { get; set; }
}

36
BBWYB.Client/Models/APIModel/Response/PurchaseSchemeResponse.cs

@ -11,20 +11,20 @@ namespace BBWYB.Client.Models
/// </summary>
public decimal? DefaultCost { get; set; }
public string ProductId { get; set; }
/// <summary>
/// 采购商Id
/// </summary>
public string PurchaserId { get; set; }
///// <summary>
///// 采购商Id
///// </summary>
//public string PurchaserId { get; set; }
/// <summary>
/// 采购商Id
/// </summary>
public string PurchaserId2 { get; set; }
public string PurchaserName { get; set; }
/// <summary>
/// 发货地
/// </summary>
public string PurchaserLocation { get; set; }
///// <summary>
///// 采购商Id
///// </summary>
//public string PurchaserId2 { get; set; }
//public string PurchaserName { get; set; }
///// <summary>
///// 发货地
///// </summary>
//public string PurchaserLocation { get; set; }
/// <summary>
/// 采购实际成本
/// </summary>
@ -32,10 +32,10 @@ namespace BBWYB.Client.Models
public string SkuId { get; set; }
public long ShopId { get; set; }
/// <summary>
/// 采购平台
/// </summary>
public Platform PurchasePlatform { get; set; }
///// <summary>
///// 采购平台
///// </summary>
//public Platform PurchasePlatform { get; set; }
/// <summary>
/// 最后采购时间
@ -43,6 +43,8 @@ namespace BBWYB.Client.Models
public DateTime? LastPurchaseTime { get; set; }
public List<PurchaseSchemeProductResponse> PurchaseSchemeProductList { get; set; }
public List<Purchaser> PurchaserList { get; set; }
}
}

28
BBWYB.Client/Models/PurchaseScheme/PurchaseScheme.cs

@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
namespace BBWYB.Client.Models
{
@ -21,10 +22,10 @@ namespace BBWYB.Client.Models
public decimal DefaultCost { get => defaultCost; set { SetProperty(ref defaultCost, value); } }
public decimal RealCost { get => realCost; set { SetProperty(ref realCost, value); } }
public string PurchaserId { get; set; }
public string PurchaserId2 { get; set; }
//public string PurchaserId { get; set; }
//public string PurchaserId2 { get; set; }
public string PurchaserName { get; set; }
public string PurchaserLocation { get; set; }
//public string PurchaserLocation { get; set; }
public string PurchaseProductId1 { get; set; }
public int PurchaseProductSkuCount1 { get; set; }
public string PurchaseProductId2 { get; set; }
@ -37,7 +38,7 @@ namespace BBWYB.Client.Models
/// <summary>
/// 采购平台
/// </summary>
public Platform PurchasePlatform { get; set; }
//public Platform PurchasePlatform { get; set; }
/// <summary>
/// 最后采购时间
@ -49,9 +50,12 @@ namespace BBWYB.Client.Models
/// </summary>
public IList<PurchaseSchemeProduct> PurchaseSchemeProductList { get; set; }
public List<Purchaser> PurchaserList { get; set; }
public PurchaseScheme()
{
PurchaseSchemeProductList = new ObservableCollection<PurchaseSchemeProduct>();
PurchaserList = new List<Purchaser>();
}
/// <summary>
@ -68,13 +72,17 @@ namespace BBWYB.Client.Models
ProductId = apiModel.ProductId,
SkuId = apiModel.SkuId,
DefaultCost = apiModel.DefaultCost ?? 0,
RealCost = apiModel.RealCost ?? 0,
PurchaserId = apiModel.PurchaserId,
PurchaserName = apiModel.PurchaserName,
PurchaserLocation = apiModel.PurchaserLocation,
PurchasePlatform = apiModel.PurchasePlatform
RealCost = apiModel.RealCost ?? 0
//PurchaserId = apiModel.PurchaserId,
//PurchaserName = apiModel.PurchaserName,
//PurchaserLocation = apiModel.PurchaserLocation,
//PurchasePlatform = apiModel.PurchasePlatform
};
foreach (var p in apiModel.PurchaserList)
{
model.PurchaserList.Add(p);
}
model.PurchaserName = model.PurchaserList.Count() == 1 ? model.PurchaserList[0].Name : $"{model.PurchaserList[0].Name}等{model.PurchaserList.Count()}个采购商";
foreach (var apiProduct in apiModel.PurchaseSchemeProductList)
{
model.PurchaseSchemeProductList.Add(PurchaseSchemeProduct.Convert(apiProduct));

13
BBWYB.Client/Models/PurchaseScheme/PurchaseSchemeProduct.cs

@ -28,6 +28,12 @@ namespace BBWYB.Client.Models
public string PurchaseUrl { get => purchaseUrl; set { SetProperty(ref purchaseUrl, value); } }
public string PurchaseProductId { get => purchaseProductId; set => purchaseProductId = value; }
public string PurchaserId { get; set; }
public string PurchaserId2 { get; set; }
public string PurchaserLocation { get; set; }
public string PurchaserName { get; set; }
public Platform PurchasePlatform { get; set; }
public bool IsEditing
{
get => isEditing;
@ -79,7 +85,12 @@ namespace BBWYB.Client.Models
ProductId = apiModel.ProductId,
SkuId = apiModel.SkuId,
PurchaseProductId = apiModel.PurchaseProductId,
PurchaseUrl = apiModel.PurchaseUrl
PurchaseUrl = apiModel.PurchaseUrl,
PurchaserId = apiModel.PurchaserId,
PurchaserId2 = apiModel.PurchaserId2,
PurchaserName = apiModel.PurchaserName,
PurchasePlatform = apiModel.PurchasePlatform.Value,
PurchaserLocation = apiModel.PurchaserLocation
};
model.SelectedSkuIdList.AddRange(apiModel.PurchaseSchemeProductSkuList.Select(s => s.PurchaseSkuId));
return model;

16
BBWYB.Client/ViewModels/MainViewModel.cs

@ -87,14 +87,14 @@ namespace BBWYB.Client.ViewModels
{
App.Current.Dispatcher.Invoke(() =>
{
MenuList.Add(new MenuModel()
{
Name = "订单管理",
ChildList = new List<MenuModel>()
{
new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
}
});
//MenuList.Add(new MenuModel()
//{
// Name = "订单管理",
// ChildList = new List<MenuModel>()
// {
// new MenuModel(){ Name="订单列表",Url="/Views/Order/OrderList.xaml" }
// }
//});
MenuList.Add(new MenuModel()
{
Name = "商品管理",

18
BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs

@ -117,17 +117,17 @@ namespace BBWYB.Client.ViewModels
if (!isResponse)
return;
isResponse = false;
var purchaserId = skuGroup.SelectedScheme.PurchaserId;
//var purchaserId = skuGroup.SelectedScheme.PurchaserId;
foreach (var otherSkuGroup in SkuGroup)
{
if (otherSkuGroup.SkuId == skuGroup.SkuId)
continue;
//foreach (var otherSkuGroup in SkuGroup)
//{
// if (otherSkuGroup.SkuId == skuGroup.SkuId)
// continue;
var samePurchaseScheme = otherSkuGroup.SchemeList.FirstOrDefault(s => s.PurchaserId == purchaserId);
if (samePurchaseScheme != null)
otherSkuGroup.SelectedScheme = samePurchaseScheme;
}
// var samePurchaseScheme = otherSkuGroup.SchemeList.FirstOrDefault(s => s.PurchaserId == purchaserId);
// if (samePurchaseScheme != null)
// otherSkuGroup.SelectedScheme = samePurchaseScheme;
//}
isResponse = true;
}

4
BBWYB.Client/ViewModels/Purchase/OnlinePurchaseViewModel.cs

@ -135,8 +135,8 @@ namespace BBWYB.Client.ViewModels
Logo = orderSku.Logo,
Price = orderSku.Price.Value,
ProductId = scheme.ProductId,
PurchasePlatform = scheme.PurchasePlatform,
PurchaserId = scheme.PurchaserId,
//PurchasePlatform = scheme.PurchasePlatform,
//PurchaserId = scheme.PurchaserId,
PurchaserName = scheme.PurchaserName,
PurchaseSchemeId = scheme.Id,
Quantity = orderSku.ItemTotal,

229
BBWYB.Client/ViewModels/Ware/BindingPurchaseProductViewModel.cs

@ -4,9 +4,11 @@ using BBWYB.Client.Views.Ware;
using BBWYB.Common.Models;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading;
@ -16,17 +18,17 @@ using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
public class BindingPurchaseProductViewModel : BaseVM, IDenpendency
public class BindingPurchaseProductViewModel : BaseVM
{
#region Properties
private GlobalContext globalContext;
private PurchaseService purchaseService;
private PurchaseProductAPIService purchaseProductAPIService;
private string purchaserName;
//private string purchaserName;
private bool isLoading;
private Platform purchasePlatform;
private long? schemeId;
//private Platform purchasePlatform;
private IDictionary<Platform, string> urlPatternDictionary;
@ -34,15 +36,18 @@ namespace BBWYB.Client.ViewModels
public IList<ProductSku> ProductSkuList { get; set; }
public string PurchaserId { get; set; }
//public string PurchaserId { get; set; }
//public string PurchaserId2 { get; set; }
public string PurchaserId2 { get; set; }
//public string PurchaserName { get => purchaserName; set { SetProperty(ref purchaserName, value); } }
//public string PurchaserLocation { get; set; }
public string PurchaserName { get => purchaserName; set { SetProperty(ref purchaserName, value); } }
public string PurchaserLocation { get; set; }
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } }
public Platform PurchasePlatform { get => purchasePlatform; set { SetProperty(ref purchasePlatform, value); } }
public long? SchemeId { get => schemeId; set { SetProperty(ref schemeId, value); } }
//public Platform PurchasePlatform { get => purchasePlatform; set { SetProperty(ref purchasePlatform, value); } }
#endregion
@ -86,68 +91,130 @@ namespace BBWYB.Client.ViewModels
{ Platform.,@"^(https://detail.1688.com/offer/(\d+).html)[^\s]*" },
//{ Platform.拳探, @"^(https://qt.qiyue666.com/goods_detail/(\d+))(\?\w*)?$" }
};
ProductSkuList = new ObservableCollection<ProductSku>();
}
public void SetData(IList<ProductSku> productSkuList, string purchaserId, string purchaserId2, string purchaserName, Platform purchasePlatform)
//public void SetData(IList<ProductSku> productSkuList, string purchaserId, string purchaserId2, string purchaserName, Platform purchasePlatform)
//{
// this.ProductSkuList = productSkuList;
// //this.Product = product;
// this.PurchaserId = purchaserId;
// this.PurchaserId2 = purchaserId2;
// this.PurchaserName = purchaserName;
// this.PurchasePlatform = purchasePlatform;
//}
public void SetData(IList<ProductSku> productSkuList, long? schemeId)
{
this.ProductSkuList = productSkuList;
foreach (var productSku in productSkuList)
ProductSkuList.Add(productSku);
this.SchemeId = schemeId;
//this.Product = product;
this.PurchaserId = purchaserId;
this.PurchaserId2 = purchaserId2;
this.PurchaserName = purchaserName;
this.PurchasePlatform = purchasePlatform;
//this.PurchaserId = purchaserId;
//this.PurchaserId2 = purchaserId2;
//this.PurchaserName = purchaserName;
//this.PurchasePlatform = purchasePlatform;
}
protected override void Load()
{
if (!string.IsNullOrEmpty(PurchaserId))
if (this.SchemeId != null)
{
IsLoading = true;
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(ProductSkuList.Select(s => s.Id).ToList(), PurchaserId, globalContext.User.Shop.ShopId, purchasePlatform: PurchasePlatform)).ContinueWith(r =>
{
var apiResponse = r.Result;
if (!apiResponse.Success)
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(apiResponse.Msg, "查询采购方案");
});
IsLoading = false;
return;
}
var purchaseSchemeList = apiResponse.Data;
var waitList = new List<EventWaitHandle>();
foreach (var sku in ProductSkuList)
{
//当前SKU下当前采购商的采购方案
var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
if (apiScheme == null)
continue;
sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
var ewh = new ManualResetEvent(false);
waitList.Add(ewh);
Task.Factory.StartNew(() =>
{
foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
{
purchaseSchemeProduct.IsEditing = false;
LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
}
ewh.Set();
ewh.Dispose();
});
}
WaitHandle.WaitAll(waitList.ToArray());
IsLoading = false;
});
var skuIdList = ProductSkuList.Select(s => s.Id).ToList();
var sku = ProductSkuList.FirstOrDefault();
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(skuIdList, shopId: globalContext.User.Shop.ShopId, schemeId: SchemeId)).ContinueWith(r =>
{
var apiResponse = r.Result;
if (!apiResponse.Success)
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(apiResponse.Msg, "查询采购方案");
});
IsLoading = false;
return;
}
var purchaseSchemeList = apiResponse.Data;
var apiScheme = purchaseSchemeList.FirstOrDefault();
if (apiScheme == null)
{
IsLoading = false;
return;
}
sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
var ewh = new ManualResetEvent(false);
var waitList = new List<EventWaitHandle>();
waitList.Add(ewh);
Task.Factory.StartNew(() =>
{
foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
{
purchaseSchemeProduct.IsEditing = false;
LoadPurchaseProduct(purchaseSchemeProduct.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
}
ewh.Set();
ewh.Dispose();
});
WaitHandle.WaitAll(waitList.ToArray());
IsLoading = false;
});
}
}
//protected override void Load()
//{
// if (!string.IsNullOrEmpty(PurchaserId))
// {
// IsLoading = true;
// Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(ProductSkuList.Select(s => s.Id).ToList(), PurchaserId, globalContext.User.Shop.ShopId, purchasePlatform: PurchasePlatform)).ContinueWith(r =>
// {
// var apiResponse = r.Result;
// if (!apiResponse.Success)
// {
// App.Current.Dispatcher.BeginInvoke((Action)delegate
// {
// MessageBox.Show(apiResponse.Msg, "查询采购方案");
// });
// IsLoading = false;
// return;
// }
// var purchaseSchemeList = apiResponse.Data;
// var waitList = new List<EventWaitHandle>();
// foreach (var sku in ProductSkuList)
// {
// //当前SKU下当前采购商的采购方案
// var apiScheme = purchaseSchemeList.FirstOrDefault(s => s.SkuId == sku.Id && s.PurchaserId == PurchaserId);
// if (apiScheme == null)
// continue;
// sku.SelectedPurchaseScheme = PurchaseScheme.Convert(apiScheme);
// var ewh = new ManualResetEvent(false);
// waitList.Add(ewh);
// Task.Factory.StartNew(() =>
// {
// foreach (var purchaseSchemeProduct in sku.SelectedPurchaseScheme.PurchaseSchemeProductList)
// {
// purchaseSchemeProduct.IsEditing = false;
// LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseSchemeProduct.PurchaseProductId, null, out _);
// }
// ewh.Set();
// ewh.Dispose();
// });
// }
// WaitHandle.WaitAll(waitList.ToArray());
// IsLoading = false;
// });
// }
//}
public void LoadPurchaseProduct(Platform platform, PurchaseSchemeProduct purchaseSchemeProduct, string purchaseProductId, Func<string, string> checkPurchaserFunc, out string errorMsg)
{
errorMsg = string.Empty;
@ -180,10 +247,15 @@ namespace BBWYB.Client.ViewModels
return;
}
PurchaserId = data.Value.purchaser.Id;
PurchaserId2 = data.Value.purchaser.Id2;
PurchaserName = data.Value.purchaser.Name;
PurchaserLocation = data.Value.purchaser.Location;
purchaseSchemeProduct.PurchaserId = data.Value.purchaser.Id;
purchaseSchemeProduct.PurchaserId2 = data.Value.purchaser.Id2;
purchaseSchemeProduct.PurchaserName = data.Value.purchaser.Name;
purchaseSchemeProduct.PurchaserLocation = data.Value.purchaser.Location;
//PurchaserId = data.Value.purchaser.Id;
//PurchaserId2 = data.Value.purchaser.Id2;
//PurchaserName = data.Value.purchaser.Name;
//PurchaserLocation = data.Value.purchaser.Location;
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
@ -214,8 +286,7 @@ namespace BBWYB.Client.ViewModels
productSku.SelectedPurchaseScheme = new PurchaseScheme()
{
ProductId = productSku.ProductId,
SkuId = productSku.Id,
PurchasePlatform = PurchasePlatform
SkuId = productSku.Id
};
}
else if (productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Count >= 4)
@ -229,7 +300,8 @@ namespace BBWYB.Client.ViewModels
Id = DateTime.Now.ToFileTime(),
IsEditing = true,
ProductId = productSku.ProductId,
SkuId = productSku.Id
SkuId = productSku.Id,
PurchasePlatform = Platform. //B端写死只能1688
});
}
@ -237,8 +309,8 @@ namespace BBWYB.Client.ViewModels
{
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId);
productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Remove(purchaseSchemeProduct);
if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0))
PurchaserId = string.Empty;
//if (!ProductSkuList.Any(s => s.SelectedPurchaseScheme != null && s.SelectedPurchaseScheme.PurchaseSchemeProductList.Count > 0))
// PurchaserId = string.Empty;
}
/// <summary>
@ -254,7 +326,7 @@ namespace BBWYB.Client.ViewModels
return;
}
urlPatternDictionary.TryGetValue(PurchasePlatform, out string pattern);
urlPatternDictionary.TryGetValue(purchaseSchemeProduct.PurchasePlatform, out string pattern);
var match = Regex.Match(purchaseSchemeProduct.PurchaseUrl, pattern);
if (!match.Success)
@ -276,13 +348,13 @@ namespace BBWYB.Client.ViewModels
Task.Factory.StartNew(() =>
{
LoadPurchaseProduct(sku.SelectedPurchaseScheme.PurchasePlatform, purchaseSchemeProduct, purchaseProductId, (p) =>
LoadPurchaseProduct(purchaseSchemeProduct.PurchasePlatform, purchaseSchemeProduct, purchaseProductId, (p) =>
{
if (sku.PurchaseSchemeList.Any(s => s.Id != sku.SelectedPurchaseScheme.Id && s.PurchaserId == p))
return $"sku{sku.Id}的采购方案中已存在相同的采购商"; //同一个sku中的采购方案不能有相同的采购商
//if (sku.PurchaseSchemeList.Any(s => s.Id != sku.SelectedPurchaseScheme.Id && s.PurchaserId == p))
// return $"sku{sku.Id}的采购方案中已存在相同的采购商"; //同一个sku中的采购方案不能有相同的采购商
if (!string.IsNullOrEmpty(PurchaserId) && p != PurchaserId) //同一批操作的sku必须为相同的采购商
return "采购商必须相同";
//if (!string.IsNullOrEmpty(PurchaserId) && p != PurchaserId) //同一批操作的sku必须为相同的采购商
// return "采购商必须相同";
return string.Empty;
}, out string errorMsg);
@ -319,10 +391,10 @@ namespace BBWYB.Client.ViewModels
purchaseSchemeProduct.IsEditing = false;
var productSku = ProductSkuList.FirstOrDefault(sku => sku.Id == purchaseSchemeProduct.SkuId);
productSku.SelectedPurchaseScheme.PurchaserId = PurchaserId;
productSku.SelectedPurchaseScheme.PurchaserId2 = PurchaserId2;
productSku.SelectedPurchaseScheme.PurchaserName = PurchaserName;
productSku.SelectedPurchaseScheme.PurchaserLocation = PurchaserLocation;
//productSku.SelectedPurchaseScheme.PurchaserId = PurchaserId;
//productSku.SelectedPurchaseScheme.PurchaserId2 = PurchaserId2;
//productSku.SelectedPurchaseScheme.PurchaserName = PurchaserName;
//productSku.SelectedPurchaseScheme.PurchaserLocation = PurchaserLocation;
productSku.SelectedPurchaseScheme.DefaultCost = productSku.SelectedPurchaseScheme.PurchaseSchemeProductList.Sum(p => p.PurchaseSchemeProductSkuList.Count() == 0 ? 0 : p.PurchaseSchemeProductSkuList.Sum(s => s.Price));
}
@ -385,12 +457,13 @@ namespace BBWYB.Client.ViewModels
private void Closing(System.ComponentModel.CancelEventArgs e)
{
PurchaserId = PurchaserName = string.Empty;
this.SchemeId = null;
//clear data
foreach (var sku in ProductSkuList)
{
sku.SelectedPurchaseScheme = null;
}
this.ProductSkuList.Clear();
//Product = null;
e.Cancel = false;
}

228
BBWYB.Client/ViewModels/Ware/WareManagerViewModel.cs

@ -20,7 +20,7 @@ namespace BBWYB.Client.ViewModels
#region Properties
private PurchaseService purchaseService;
private ProductService productService;
private BindingPurchaseProductViewModel bindingPurchaseProduct;
//private BindingPurchaseProductViewModel bindingPurchaseProduct;
private GlobalContext globalContext;
private bool isLoading;
private int pageIndex = 1;
@ -45,22 +45,32 @@ namespace BBWYB.Client.ViewModels
#endregion
#region Commands
public ICommand AddPurchaserCommand { get; set; }
public ICommand EditPurchaserCommand { get; set; }
public ICommand DeletePurchaserCommand { get; set; }
//public ICommand AddPurchaserCommand { get; set; }
//public ICommand EditPurchaserCommand { get; set; }
//public ICommand DeletePurchaserCommand { get; set; }
public ICommand SearchCommand { get; set; }
public ICommand ProductPageIndexChangedCommand { get; set; }
public ICommand SwitchPurchasePlatformCommand { get; set; }
public ICommand AddSchemeCommand { get; set; }
public ICommand EditSchemeCommand { get; set; }
public ICommand DeleteSchemeCommand { get; set; }
#endregion
#region Methods
public WareManagerViewModel(GlobalContext globalContext, BindingPurchaseProductViewModel bindingPurchaseProduct, PurchaseService purchaseService, ProductService productService)
{
PageSize = 5;
AddPurchaserCommand = new RelayCommand<Product>(AddPurchaser);
EditPurchaserCommand = new RelayCommand<Purchaser>(EditPurchaser);
DeletePurchaserCommand = new RelayCommand<Purchaser>(DeletePurchaser);
//AddPurchaserCommand = new RelayCommand<Product>(AddPurchaser);
//EditPurchaserCommand = new RelayCommand<Purchaser>(EditPurchaser);
//DeletePurchaserCommand = new RelayCommand<Purchaser>(DeletePurchaser);
AddSchemeCommand = new RelayCommand<Product>(AddScheme);
EditSchemeCommand = new RelayCommand<PurchaseScheme>(EditScheme);
DeleteSchemeCommand = new RelayCommand<PurchaseScheme>(DeleteScheme);
SwitchPurchasePlatformCommand = new RelayCommand<object>(SwitchPurchasePlatform);
SearchCommand = new RelayCommand(() =>
{
@ -71,7 +81,7 @@ namespace BBWYB.Client.ViewModels
this.purchaseService = purchaseService;
this.productService = productService;
this.globalContext = globalContext;
this.bindingPurchaseProduct = bindingPurchaseProduct;
//this.bindingPurchaseProduct = bindingPurchaseProduct;
ProductList = new ObservableCollection<Product>();
Task.Factory.StartNew(() => LoadWare(1));
}
@ -164,7 +174,7 @@ namespace BBWYB.Client.ViewModels
{
foreach (var p in productList)
ProductList.Add(p);
ExtractPurchaser();
//ExtractPurchaser();
//使滚动条保持顶部
//Messenger.Default.Send(string.Empty, "WareManager_ProductListScrollToTop");
WeakReferenceMessenger.Default.Send(new Message_WareManager_ProductListScrollToTop(null));
@ -227,96 +237,142 @@ namespace BBWYB.Client.ViewModels
/// <summary>
/// 提取SKU中的采购商到商品的采购商列表中
/// </summary>
private void ExtractPurchaser(string productId = "")
//private void ExtractPurchaser(string productId = "")
//{
// var productList = string.IsNullOrEmpty(productId) ? ProductList : ProductList.Where(p => p.Id == productId);
// foreach (var product in productList)
// {
// product.PurchaserList.Clear();
// foreach (var sku in product.SkuList)
// {
// if (sku.PurchaseSchemeList.Count() > 0)
// {
// foreach (var pscheme in sku.PurchaseSchemeList)
// {
// var purchaser = product.PurchaserList.FirstOrDefault(purchaser => purchaser.Id == pscheme.PurchaserId);
// if (purchaser == null)
// {
// purchaser = new Purchaser()
// {
// Id = pscheme.PurchaserId,
// Id2 = pscheme.PurchaserId2,
// Name = pscheme.PurchaserName,
// ProductId = product.Id
// };
// product.PurchaserList.Add(purchaser);
// }
// purchaser.SkuUseCount++;
// }
// }
// }
// }
//}
//private void AddPurchaser(Product product)
//{
// if (product.PurchaserList.Count >= 5)
// {
// MessageBox.Show("一个SPU内最多允许5个采购商");
// return;
// }
// OpenBindingView(product, string.Empty, string.Empty, string.Empty);
//}
//private void EditPurchaser(Purchaser purchaser)
//{
// var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
// OpenBindingView(product, purchaser.Id, purchaser.Id2, purchaser.Name);
//}
//private void DeletePurchaser(Purchaser purchaser)
//{
// if (MessageBox.Show("确认删除该采购商吗?", "提示", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
// return;
// IsLoading = true;
// Task.Factory.StartNew(() =>
// {
// var response = purchaseService.DeletePurchaser(purchaser.ProductId, purchaser.Id);
// IsLoading = false;
// if (response.Success)
// {
// App.Current.Dispatcher.BeginInvoke((Action)delegate
// {
// var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
// if (product != null)
// {
// foreach (var sku in product.SkuList)
// {
// var deleteScheme = sku.PurchaseSchemeList.FirstOrDefault(s => s.PurchaserId == purchaser.Id);
// if (deleteScheme != null)
// sku.PurchaseSchemeList.Remove(deleteScheme);
// }
// product.PurchaserList.Remove(purchaser);
// }
// MessageBox.Show("采购商删除成功", "提示");
// });
// }
// else
// {
// App.Current.Dispatcher.BeginInvoke((Action)delegate
// {
// MessageBox.Show(response.Msg, "采购商删除");
// });
// }
// });
//}
private void AddScheme(Product product)
{
var productList = string.IsNullOrEmpty(productId) ? ProductList : ProductList.Where(p => p.Id == productId);
foreach (var product in productList)
{
product.PurchaserList.Clear();
foreach (var sku in product.SkuList)
{
if (sku.PurchaseSchemeList.Count() > 0)
{
foreach (var pscheme in sku.PurchaseSchemeList)
{
var purchaser = product.PurchaserList.FirstOrDefault(purchaser => purchaser.Id == pscheme.PurchaserId);
if (purchaser == null)
{
purchaser = new Purchaser()
{
Id = pscheme.PurchaserId,
Id2 = pscheme.PurchaserId2,
Name = pscheme.PurchaserName,
ProductId = product.Id
};
product.PurchaserList.Add(purchaser);
}
purchaser.SkuUseCount++;
}
}
}
}
}
private void AddPurchaser(Product product)
{
if (product.PurchaserList.Count >= 5)
{
MessageBox.Show("一个SPU内最多允许5个采购商");
return;
}
OpenBindingView(product, string.Empty, string.Empty, string.Empty);
OpenBindingView(product, string.Empty, null);
}
private void EditPurchaser(Purchaser purchaser)
private void EditScheme(PurchaseScheme purchaseScheme)
{
var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
OpenBindingView(product, purchaser.Id, purchaser.Id2, purchaser.Name);
var product = ProductList.FirstOrDefault(p => p.Id == purchaseScheme.ProductId);
OpenBindingView(product, purchaseScheme.SkuId, purchaseScheme.Id);
}
private void DeletePurchaser(Purchaser purchaser)
private void DeleteScheme(PurchaseScheme purchaseScheme)
{
if (MessageBox.Show("确认删除该采购商吗?", "提示", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
if (MessageBox.Show("确定删除该采购方案吗?", "提示", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
return;
IsLoading = true;
Task.Factory.StartNew(() =>
{
var response = purchaseService.DeletePurchaser(purchaser.ProductId, purchaser.Id);
IsLoading = false;
if (response.Success)
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
var product = ProductList.FirstOrDefault(p => p.Id == purchaser.ProductId);
if (product != null)
Task.Factory.StartNew(() => purchaseService.DeletePurchaseScheme(purchaseScheme.Id))
.ContinueWith(t =>
{
foreach (var sku in product.SkuList)
IsLoading = false;
var response = t.Result;
if (!response.Success)
{
var deleteScheme = sku.PurchaseSchemeList.FirstOrDefault(s => s.PurchaserId == purchaser.Id);
if (deleteScheme != null)
sku.PurchaseSchemeList.Remove(deleteScheme);
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(response.Msg, "删除采购方案");
});
return;
}
product.PurchaserList.Remove(purchaser);
}
MessageBox.Show("采购商删除成功", "提示");
});
}
else
{
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
MessageBox.Show(response.Msg, "采购商删除");
});
}
});
App.Current.Dispatcher.Invoke(() =>
{
var product = ProductList.FirstOrDefault(p => p.Id == purchaseScheme.ProductId);
if (product != null)
{
var sku = product.SkuList.FirstOrDefault(s => s.Id == purchaseScheme.SkuId);
if (sku != null)
{
sku.PurchaseSchemeList.Remove(purchaseScheme);
}
}
MessageBox.Show("采购方案删除成功", "提示");
});
});
}
private void OpenBindingView(Product product, string purchaserId, string purchaserId2, string purchaserName)
private void OpenBindingView(Product product, string skuId, long? schemeId)
{
var skuList = product.SkuList;
bindingPurchaseProduct.SetData(skuList, purchaserId, purchaserId2, purchaserName, product.SelectedPurchasePlatformModel);
var bindingView = new BindingPurchaseProduct();
var skuList = string.IsNullOrEmpty(skuId) ? product.SkuList : product.SkuList.Where(s => s.Id == skuId).ToList();
//bindingPurchaseProduct.SetData(skuList, purchaserId, purchaserId2, purchaserName, product.SelectedPurchasePlatformModel);
//bindingPurchaseProduct.SetData();
var bindingView = new BindingPurchaseProduct(skuList, schemeId);
var r = bindingView.ShowDialog();
if (r == true)
{
@ -328,7 +384,7 @@ namespace BBWYB.Client.ViewModels
IsLoading = false;
App.Current.Dispatcher.BeginInvoke((Action)delegate
{
ExtractPurchaser(product.Id);
//ExtractPurchaser(product.Id);
});
});
}
@ -345,7 +401,7 @@ namespace BBWYB.Client.ViewModels
Task.Factory.StartNew(() => LoadPurchaseScheme(product.SkuList, platform))
.ContinueWith(t =>
{
App.Current.Dispatcher.Invoke(() => ExtractPurchaser(productId));
//App.Current.Dispatcher.Invoke(() => ExtractPurchaser(productId));
IsLoading = false;
});
}

2
BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml

@ -25,7 +25,7 @@
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<Run Text="{Binding PurchaserName}"/>
<Run Text="{Binding SchemeId}"/>
<Run Text="绑定采购商品"/>
</TextBlock>
<ListBox x:Name="listbox_skuList" ItemsSource="{Binding ProductSkuList}"

19
BBWYB.Client/Views/Ware/BindingPurchaseProduct.xaml.cs

@ -1,6 +1,9 @@
using CommunityToolkit.Mvvm.Messaging;
using BBWYB.Client.Models;
using BBWYB.Client.ViewModels;
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.Mvvm.Messaging.Messages;
using SJ.Controls;
using System.Collections.Generic;
using System.Windows;
namespace BBWYB.Client.Views.Ware
@ -10,18 +13,12 @@ namespace BBWYB.Client.Views.Ware
/// </summary>
public partial class BindingPurchaseProduct : BWindow
{
public BindingPurchaseProduct()
private BindingPurchaseProductViewModel bindingVM;
public BindingPurchaseProduct(IList<ProductSku> productSkuList, long? schemeId)
{
InitializeComponent();
//Messenger.Default.Register<bool>(this, "BindingPurchaseProduct_Close", (x) =>
// {
// this.Dispatcher.Invoke(() =>
// {
// this.DialogResult = x;
// this.Close();
// });
// });
bindingVM = this.DataContext as BindingPurchaseProductViewModel;
bindingVM.SetData(productSkuList, schemeId);
WeakReferenceMessenger.Default.Register<Message_BindingPurchaseProductClose>(this, (o, x) =>
{
this.Dispatcher.Invoke(() =>

51
BBWYB.Client/Views/Ware/WareManager.xaml

@ -94,10 +94,10 @@
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<!--<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="280"/>
</Grid.ColumnDefinitions>
</Grid.ColumnDefinitions>-->
<Grid Background="#F2F2F2" Grid.ColumnSpan="2">
<StackPanel Orientation="Horizontal">
@ -110,8 +110,11 @@
<Run Text="{Binding ProductItemNum}"/>
</TextBlock>
</StackPanel>
<c:BButton HorizontalAlignment="Right" Content="添加采购商" Width="110"
Command="{Binding DataContext.AddPurchaserCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/>
<!--<c:BButton HorizontalAlignment="Right" Content="添加采购商" Width="110"
Command="{Binding DataContext.AddPurchaserCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/>-->
<c:BButton HorizontalAlignment="Right" Content="添加采购方案" Width="110"
Command="{Binding DataContext.AddSchemeCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}" CommandParameter="{Binding }"/>
</Grid>
<ListBox x:Name="listbox_sku" Grid.Row="1" ItemsSource="{Binding SkuList}"
@ -126,7 +129,7 @@
Width="{Binding ActualWidth,ElementName=listbox_sku}">
<Grid Height="150">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition Width="299"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
@ -177,6 +180,8 @@
<ColumnDefinition Width="0.15*"/>
<ColumnDefinition Width="0.1*"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="170"/>
<ColumnDefinition Width="110"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding PurchaseProductId1}" Style="{StaticResource middleTextBlock}"/>
<TextBlock Grid.Column="1" Style="{StaticResource middleTextBlock}"
@ -208,6 +213,34 @@
<!--毛利率-->
</Border>
<TextBlock Grid.Column="9" Style="{StaticResource middleTextBlock}"
Text="{Binding PurchaserName}">
<TextBlock.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<ListBox Style="{StaticResource NoScrollViewListBoxStyle}"
ItemsSource="{Binding PurchaserList}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
Foreground="{StaticResource Text.Color}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
<StackPanel Orientation="Horizontal" Grid.Column="10"
HorizontalAlignment="Center">
<c:BButton Style="{StaticResource LinkButton}"
Content="编辑"
Command="{Binding DataContext.EditSchemeCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" CommandParameter="{Binding }"/>
<c:BButton Style="{StaticResource LinkButton}"
Content="删除" Margin="10,0,0,0"
Command="{Binding DataContext.DeleteSchemeCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" CommandParameter="{Binding }"/>
</StackPanel>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/>
@ -216,7 +249,9 @@
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="7"/>
<Border Height="1" Grid.ColumnSpan="9" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="8"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="9"/>
<Border Height="1" Grid.ColumnSpan="11" Background="{StaticResource Border.Brush}" VerticalAlignment="Bottom"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
@ -269,7 +304,7 @@
</ListBox.ItemTemplate>
</ListBox>
<ListBox x:Name="listbox_purchaser" ItemsSource="{Binding PurchaserList}"
<!--<ListBox x:Name="listbox_purchaser" ItemsSource="{Binding PurchaserList}"
Grid.Row="1" Grid.Column="1"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
Style="{StaticResource NoScrollViewListBoxStyle}"
@ -310,7 +345,7 @@
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ListBox>-->
</Grid>
</DataTemplate>

4
BBWYB.Client/appsettings.json

@ -1,6 +1,6 @@
{
// "BBWYApiHost": "http://localhost:5000",
"BBWYApiHost": "http://bbwyb.qiyue666.com",
"BBWYApiHost": "http://localhost:5000",
//"BBWYApiHost": "http://bbwyb.qiyue666.com",
"MDSApiHost": "http://mdsapi.qiyue666.com",
"BBWYCApiHost": "http://bbwytest.qiyue666.com",
"QKApiHost": "http://localhost:8080"

37
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -124,6 +124,12 @@ namespace BBWYB.Server.Business
}
#endregion
foreach (var purchaseProductSku in addPurchaseSchemeProductSkuList)
{
if (purchaseProductSku.PurchaseRatio == null)
purchaseProductSku.PurchaseRatio = 1;
}
fsql.Transaction(() =>
{
if (newPurchaserList.Count > 0)
@ -152,20 +158,35 @@ namespace BBWYB.Server.Business
/// </summary>
/// <param name="querySchemeRequest"></param>
/// <returns></returns>
public IList<PurchaseSchemeResponse> GetPurchaseSchemeList(QuerySchemeRequest querySchemeRequest)
public IList<PurchaseSchemeResponse> GetPurchaseSchemeList(QuerySchemeRequest request)
{
var select = fsql.Select<PurchaseScheme>();
if (querySchemeRequest.SchemeId != null && querySchemeRequest.SchemeId != 0)
select = select.Where(ps => ps.Id == querySchemeRequest.SchemeId);
else if (querySchemeRequest.SchemeIdList != null && querySchemeRequest.SchemeIdList.Count() > 0)
select = select.Where(ps => querySchemeRequest.SchemeIdList.Contains(ps.Id));
if (request.SchemeId != null && request.SchemeId != 0)
select = select.Where(ps => ps.Id == request.SchemeId);
else if (request.SchemeIdList != null && request.SchemeIdList.Count() > 0)
select = select.Where(ps => request.SchemeIdList.Contains(ps.Id));
else
{
select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, ps => ps.ShopId == querySchemeRequest.ShopId)
.WhereIf(querySchemeRequest.SkuIdList != null && querySchemeRequest.SkuIdList.Count() > 0, ps => querySchemeRequest.SkuIdList.Contains(ps.SkuId));
select = select.WhereIf(request.ShopId != null && request.ShopId != 0, ps => ps.ShopId == request.ShopId)
.WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId));
if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
{
//var childSelect = fsql.Select<PurchaseSchemeProduct, Purchaser>()
// .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
// .WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
// .WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId);
//select = select.Where(ps => childSelect.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
select = select.Where(ps => fsql.Select<PurchaseSchemeProduct, Purchaser>()
.InnerJoin((psp, p) => psp.PurchaserId == p.Id)
.WhereIf(request.PurchasePlatform != null, (psp, p) => p.Platform == request.PurchasePlatform)
.WhereIf(!string.IsNullOrEmpty(request.PurchaserId), (psp, p) => psp.PurchaserId == request.PurchaserId)
.Where((psp, p) => psp.SkuPurchaseSchemeId == ps.Id).Any());
}
//.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
var sql = select.ToSql();
var purchaseSchemeList = select.ToList<PurchaseSchemeResponse>();

5
BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductSkuRequest.cs

@ -21,5 +21,10 @@
/// 采购Ske SpecId (1688独有)
/// </summary>
public string PurchaseSkuSpecId { get; set; }
/// <summary>
/// 采购配比
/// </summary>
public int? PurchaseRatio { get; set; }
}
}

16
BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs

@ -18,14 +18,14 @@ namespace BBWYB.Server.Model.Dto
public IList<string> SkuIdList { get; set; }
///// <summary>
///// 采购商Id, 可空
///// </summary>
//public string PurchaserId { get; set; }
/// <summary>
/// 采购商Id, 可空
/// </summary>
public string PurchaserId { get; set; }
///// <summary>
///// 采购平台
///// </summary>
//public Enums.Platform? PurchasePlatform { get; set; }
/// <summary>
/// 采购平台
/// </summary>
public Enums.Platform? PurchasePlatform { get; set; }
}
}

6
BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs

@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWYB.Server.Model.Dto
namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductResponse : Model.Db.PurchaseSchemeProduct
{

Loading…
Cancel
Save