diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index 8e519e6..673114c 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -28,7 +28,7 @@ namespace BBWYB.Server.API.Controllers
}
///
- /// 查询采购方案列表
+ /// 获取采购方案列表 (不含采购配配件基本信息)
///
///
///
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 2347173..c0a5923 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -20,35 +20,45 @@ namespace BBWYB.Server.Business
private void ExtractNewPurchaser(IList purchaserSchemeList, IList addPurchaserList) where T : InputPurchaseSchemeRequest
{
- var reqeustPurchaserIdList = purchaserSchemeList.Select(s => s.PurchaserId).Distinct().ToList();
+ List reqeustPurchaserIdList = new List();
+ foreach (var scheme in purchaserSchemeList)
+ reqeustPurchaserIdList.AddRange(scheme.PurchaseSchemeProductList.Select(p => p.PurchaserId));
+ reqeustPurchaserIdList = reqeustPurchaserIdList.Distinct().ToList();
+
+ //var reqeustPurchaserIdList = purchaserSchemeList.Select(s => s.PurchaserId).Distinct().ToList();
var existPurchaserIdList = fsql.Select().Where(p => reqeustPurchaserIdList.Contains(p.Id)).ToList(p => p.Id);
var newPurchaserIdList = reqeustPurchaserIdList.Except(existPurchaserIdList);
foreach (var scheme in purchaserSchemeList)
{
- if (newPurchaserIdList.Any(p => p == scheme.PurchaserId) && !addPurchaserList.Any(p => p.Id == scheme.PurchaserId))
+ foreach (var ps in scheme.PurchaseSchemeProductList)
{
- addPurchaserList.Add(new Purchaser()
+ if (newPurchaserIdList.Any(p => p == ps.PurchaserId) && !addPurchaserList.Any(p => p.Id == ps.PurchaserId))
{
- Id = scheme.PurchaserId,
- Id2 = scheme.PurchaserId2,
- Name = scheme.PurchaserName,
- Location = scheme.PurchaserLocation,
- Platform = scheme.PurchasePlatform
- });
+ addPurchaserList.Add(new Purchaser()
+ {
+ Id = ps.PurchaserId,
+ Id2 = ps.PurchaserId2,
+ Name = ps.PurchaserName,
+ Location = ps.PurchaserLocation,
+ Platform = scheme.PurchasePlatform
+ });
+ }
}
+
}
}
public void EditPurchaseScheme(BatchCURDSchemeRequest batchCURDSchemeRequest)
{
- if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 && batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0 &&
+ batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0)
throw new BusinessException("非法参数");
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(p => string.IsNullOrEmpty(p.PurchaserId) ||
- string.IsNullOrEmpty(p.PurchaserName)))
+ if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("新增方案中有采购商Id/Name/Location为空");
- if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(p => string.IsNullOrEmpty(p.PurchaserId) ||
- string.IsNullOrEmpty(p.PurchaserName)))
+ if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
+ string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("编辑方案中有采购商Id/Name/Location为空");
List addPurchaseSchemeList = null;
@@ -138,48 +148,49 @@ namespace BBWYB.Server.Business
}
///
- /// 获取采购方案
+ /// 获取采购方案(不含采购配配件基本信息)
///
///
///
public IList GetPurchaseSchemeList(QuerySchemeRequest querySchemeRequest)
{
- var select = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id);
+ var select = fsql.Select();
if (querySchemeRequest.SchemeId != null && querySchemeRequest.SchemeId != 0)
- select = select.Where((ps, p) => ps.Id == querySchemeRequest.SchemeId);
+ select = select.Where(ps => ps.Id == querySchemeRequest.SchemeId);
else if (querySchemeRequest.SchemeIdList != null && querySchemeRequest.SchemeIdList.Count() > 0)
- select = select.Where((ps, p) => querySchemeRequest.SchemeIdList.Contains(ps.Id));
+ select = select.Where(ps => querySchemeRequest.SchemeIdList.Contains(ps.Id));
else
{
- select = select.WhereIf(querySchemeRequest.ShopId != null && querySchemeRequest.ShopId != 0, (ps, p) => ps.ShopId == querySchemeRequest.ShopId)
- .WhereIf(querySchemeRequest.SkuIdList != null && querySchemeRequest.SkuIdList.Count() > 0, (ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
- .WhereIf(!string.IsNullOrEmpty(querySchemeRequest.PurchaserId), (ps, p) => ps.PurchaserId == querySchemeRequest.PurchaserId)
- .WhereIf(querySchemeRequest.PurchasePlatform != null, (ps, p) => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
+ 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));
+ //.WhereIf(querySchemeRequest.PurchasePlatform != null, ps => ps.PurchasePlatform == querySchemeRequest.PurchasePlatform);
}
- var purchaseSchemeList = select.ToList((ps, p) => new PurchaseSchemeResponse
- {
- Id = ps.Id,
- ProductId = ps.ProductId,
- SkuId = ps.SkuId,
- ShopId = ps.ShopId,
- PurchaserId = p.Id,
- PurchaserId2 = p.Id2,
- PurchaserName = p.Name,
- PurchaserLocation = p.Location,
- DefaultCost = ps.DefaultCost,
- RealCost = ps.RealCost,
- CreateTime = ps.CreateTime,
- PurchasePlatform = ps.PurchasePlatform,
- LastPurchaseTime = ps.LastPurchaseTime
- });
+ var purchaseSchemeList = select.ToList();
+
if (purchaseSchemeList.Count > 0)
{
var purchaseSchemeIdList = purchaseSchemeList.Select(p => p.Id).ToList();
- var purchaseSchemeProductList = fsql.Select().Where(p => purchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId))
- .ToList().Map>();
+ var purchaseSchemeProductList = fsql.Select()
+ .InnerJoin((psp, p) => psp.PurchaserId == p.Id)
+ .Where((psp, p) => purchaseSchemeIdList.Contains(psp.SkuPurchaseSchemeId))
+ .ToList((psp, p) => new PurchaseSchemeProductResponse
+ {
+ CreateTime = psp.CreateTime,
+ Id = psp.Id,
+ ProductId = psp.ProductId,
+ PurchaseProductId = psp.PurchaseProductId,
+ PurchaseUrl = psp.PurchaseUrl,
+ SkuId = psp.SkuId,
+ SkuPurchaseSchemeId = psp.SkuPurchaseSchemeId,
+ PurchaserId = p.Id,
+ PurchaserId2 = p.Id2,
+ PurchaserLocation = p.Location,
+ PurchaserName = p.Name,
+ PurchasePlatform = p.Platform,
+ });
var purchaseSchemeProductSkuList = fsql.Select().Where(p => purchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId))
.ToList().Map>();
@@ -198,6 +209,23 @@ namespace BBWYB.Server.Business
schemeProduct.PurchaseSchemeProductSkuList.AddRange(schemeProductSkuList);
}
}
+
+ #region 封装采购商
+ foreach (var schemeProduct in schemeProductList)
+ {
+ if (!scheme.PurchaserList.Any(p => p.Id == schemeProduct.PurchaserId))
+ {
+ scheme.PurchaserList.Add(new Purchaser()
+ {
+ Id = schemeProduct.PurchaserId,
+ Id2 = schemeProduct.PurchaserId2,
+ Location = schemeProduct.PurchaserLocation,
+ Name = schemeProduct.PurchaserName,
+ Platform = schemeProduct.PurchasePlatform
+ });
+ }
+ }
+ #endregion
}
}
return purchaseSchemeList;
@@ -212,29 +240,33 @@ namespace BBWYB.Server.Business
List> updatePurchaseSchemeList = new List>();
foreach (var purchaseScheme in purchaseSchemeList)
{
- var purchaseProductIds = purchaseScheme.PurchaseSchemeProductList.Select(p => p.PurchaseProductId).ToArray();
- var purchaseSkuIds = new List();
- foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList)
+ var amount = 0M;
+ var purchasePlatformGroups = purchaseScheme.PurchaseSchemeProductList.GroupBy(p => p.PurchasePlatform);
+ foreach (var purchasePlatformGroup in purchasePlatformGroups)
{
- purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId));
- }
-
- var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest()
- {
- FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
- PriceMode = Enums.PurchaseOrderMode.批发,
- Params = new List()
+ var purchaseProductIds = purchasePlatformGroup.Select(p => p.PurchaseProductId).ToArray();
+ var purchaseSkuIds = new List();
+ foreach (var purchaseProduct in purchaseScheme.PurchaseSchemeProductList)
+ {
+ purchaseSkuIds.AddRange(purchaseProduct.PurchaseSchemeProductSkuList.Select(ps => ps.PurchaseSkuId));
+ }
+ var purchaseSkuBasicInfoList = BatchGetPurchaseSkuBasicInfo(new BatchPurchaseSkuBasicInfoRequest()
+ {
+ FirstApiMode = Enums.PurchaseProductAPIMode.Spider,
+ PriceMode = Enums.PurchaseOrderMode.批发,
+ Params = new List()
{
new BatchPurchaseSkuBasicInfoParamRequest()
{
- Platform = purchaseScheme.PurchasePlatform,
+ Platform = purchasePlatformGroup.Key.Value,
PurchaseProductIds = purchaseProductIds,
PurchaseSkuIds = purchaseSkuIds
}
}
- });
+ });
+ amount += purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
+ }
- var amount = purchaseSkuBasicInfoList.Sum(p => p.ItemList.Sum(s => s.Price));
if (purchaseScheme.DefaultCost != amount)
{
purchaseScheme.DefaultCost = amount;
@@ -255,34 +287,34 @@ namespace BBWYB.Server.Business
return purchaseSchemeList;
}
- ///
- /// 获取共同拥有的采购商
- ///
- ///
- ///
- public IList GetSharePurchaser(QuerySchemeRequest querySchemeRequest)
- {
- var skuCount = querySchemeRequest.SkuIdList.Count();
-
- var purchaseSchemeList = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id)
- .Where((ps, p) => ps.ShopId == querySchemeRequest.ShopId)
- .Where((ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
- .ToList();
- if (purchaseSchemeList.Count() == 0)
- return null;
-
- var group = purchaseSchemeList.GroupBy(p => p.PurchaserId);
- var sharePurchaserIdList = new List();
- foreach (var g in group)
- {
- if (g.Count() == skuCount)
- sharePurchaserIdList.Add(g.Key);
- }
- if (sharePurchaserIdList.Count == 0)
- return null;
-
- return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
- }
+ /////
+ ///// 获取共同拥有的采购商
+ /////
+ /////
+ /////
+ //public IList GetSharePurchaser(QuerySchemeRequest querySchemeRequest)
+ //{
+ // var skuCount = querySchemeRequest.SkuIdList.Count();
+
+ // var purchaseSchemeList = fsql.Select().InnerJoin((ps, p) => ps.PurchaserId == p.Id)
+ // .Where((ps, p) => ps.ShopId == querySchemeRequest.ShopId)
+ // .Where((ps, p) => querySchemeRequest.SkuIdList.Contains(ps.SkuId))
+ // .ToList();
+ // if (purchaseSchemeList.Count() == 0)
+ // return null;
+
+ // var group = purchaseSchemeList.GroupBy(p => p.PurchaserId);
+ // var sharePurchaserIdList = new List();
+ // foreach (var g in group)
+ // {
+ // if (g.Count() == skuCount)
+ // sharePurchaserIdList.Add(g.Key);
+ // }
+ // if (sharePurchaserIdList.Count == 0)
+ // return null;
+
+ // return fsql.Select().Where(p => sharePurchaserIdList.Contains(p.Id)).ToList();
+ //}
public void DeletePurchaser(DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
{
diff --git a/BBWYB.Server.Model/BBWYB.Server.Model.csproj b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
index a408f32..54ecedd 100644
--- a/BBWYB.Server.Model/BBWYB.Server.Model.csproj
+++ b/BBWYB.Server.Model/BBWYB.Server.Model.csproj
@@ -12,4 +12,8 @@
+
+
+
+
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
index be1d49c..356d97b 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
@@ -29,11 +29,11 @@ namespace BBWYB.Server.Model
[Column(StringLength = 50, IsNullable = false)]
public string ProductId { get; set; }
- ///
- /// 采购商Id
- ///
- [Column(StringLength = 20)]
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //[Column(StringLength = 20)]
+ //public string PurchaserId { get; set; }
///
/// 采购实际成本
@@ -51,8 +51,8 @@ namespace BBWYB.Server.Model
///
public DateTime? LastPurchaseTime { get; set; }
- [Column(MapType = typeof(int), DbType = "int(1)")]
- public Enums.Platform PurchasePlatform { get; set; }
+ //[Column(MapType = typeof(int), DbType = "int(1)")]
+ //public Enums.Platform PurchasePlatform { get; set; }
[Column(IsIgnore = true)]
public List PurchaseSchemeProductList { get; set; }
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
index 3ffb384..b97b8da 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.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 InputPurchaseSchemeProductRequest
{
@@ -11,17 +7,37 @@ namespace BBWYB.Server.Model.Dto
///
public string ProductId { get; set; }
///
- /// 店铺商品Skull
+ /// 店铺商品SkuId
///
public string SkuId { get; set; }
///
- /// 采购商品id
+ /// 采购商品Id
///
public string PurchaseProductId { get; set; }
///
/// 采购链接
///
public string PurchaseUrl { get; set; }
+
+ ///
+ /// 采购商Id
+ ///
+ public string PurchaserId { get; set; }
+
+ ///
+ /// 采购商Id
+ ///
+ public string PurchaserId2 { get; set; }
+
+ ///
+ /// 采购商名称
+ ///
+ public string PurchaserName { get; set; }
+ ///
+ /// 采购商发货地
+ ///
+ public string PurchaserLocation { get; set; }
+
public IList PurchaseSchemeProductSkuList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
index fda1121..b89d7e4 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
@@ -15,24 +15,24 @@ namespace BBWYB.Server.Model.Dto
/// 采购实际成本
///
public decimal? RealCost { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购商Id
- ///
- public string PurchaserId2 { get; set; }
+ /////
+ ///// 采购商Id
+ /////
+ //public string PurchaserId2 { get; set; }
- ///
- /// 采购商名称
- ///
- public string PurchaserName { get; set; }
- ///
- /// 采购商发货地
- ///
- public string PurchaserLocation { get; set; }
+ /////
+ ///// 采购商名称
+ /////
+ //public string PurchaserName { get; set; }
+ /////
+ ///// 采购商发货地
+ /////
+ //public string PurchaserLocation { get; set; }
///
/// 采购平台
///
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 59e2088..8924508 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -18,14 +18,14 @@ namespace BBWYB.Server.Model.Dto
public IList SkuIdList { get; set; }
- ///
- /// 采购商Id, 可空
- ///
- public string PurchaserId { get; set; }
+ /////
+ ///// 采购商Id, 可空
+ /////
+ //public string PurchaserId { get; set; }
- ///
- /// 采购平台
- ///
- public Enums.Platform? PurchasePlatform { get; set; }
+ /////
+ ///// 采购平台
+ /////
+ //public Enums.Platform? PurchasePlatform { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
index 0123956..288e9f2 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductResponse.cs
@@ -6,6 +6,14 @@ namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeProductResponse : Model.Db.PurchaseSchemeProduct
{
+ public string PurchaserName { get; set; }
+
+ public string PurchaserId2 { get; set; }
+
+ public string PurchaserLocation { get; set; }
+
+ public Enums.Platform? PurchasePlatform { get; set; }
+
public new List PurchaseSchemeProductSkuList { get; set; }
public PurchaseSchemeProductResponse()
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
index f322e0a..e1c617b 100644
--- a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeResponse.cs
@@ -6,17 +6,20 @@ namespace BBWYB.Server.Model.Dto
{
public class PurchaseSchemeResponse : PurchaseScheme
{
- public string PurchaserName { get; set; }
+ //public string PurchaserName { get; set; }
- public string PurchaserId2 { get; set; }
+ //public string PurchaserId2 { get; set; }
- public string PurchaserLocation { get; set; }
+ //public string PurchaserLocation { get; set; }
public new List PurchaseSchemeProductList { get; set; }
+ public List PurchaserList { get; set; }
+
public PurchaseSchemeResponse()
{
PurchaseSchemeProductList = new List();
+ PurchaserList = new List();
}
}
}