From 53cc41c4497fb8c5fcb1438a6a13b9f792110d2c Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 26 Aug 2023 02:34:51 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A5=E5=88=86=E7=BB=84=E5=BD=A2=E5=BC=8F?=
=?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=87=87=E8=B4=AD=E6=96=B9=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/PurchaseSchemeController.cs | 13 ++-
.../PurchaseScheme/PurchaseSchemeBusiness.cs | 88 ++++++++++++-------
.../Db/PurchaseScheme/PurchaseScheme.cs | 4 +-
.../QuerySchemeAndGroupRequest.cs | 20 +++++
.../PurchaseScheme/QuerySchemeRequest.cs | 22 ++++-
.../PurchaseScheme/RefreshSchemeRequest.cs | 2 +-
.../PurchaseSchemeGroupResponse.cs | 9 ++
7 files changed, 119 insertions(+), 39 deletions(-)
create mode 100644 BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs
create mode 100644 BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs
diff --git a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
index debd730..7e71b1b 100644
--- a/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
@@ -1,5 +1,4 @@
using BBWYB.Server.Business;
-using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
@@ -38,6 +37,17 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
}
+ ///
+ /// 获取采购分组和采购方案
+ ///
+ ///
+ ///
+ [HttpPost]
+ public IList GetPurchaseSchemeAndGroupList(QuerySchemeAndGroupRequest request)
+ {
+ return purchaseSchemeBusiness.GetPurchaseSchemeAndGroupList(request);
+ }
+
///
/// 获取Sku采购方案数量
///
@@ -49,6 +59,7 @@ namespace BBWYB.Server.API.Controllers
return purchaseSchemeBusiness.GetPurchaseSchemeCountList(request);
}
+
/////
///// 删除采购商
/////
diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
index 92d592f..2654983 100644
--- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
+++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
@@ -199,24 +199,46 @@ namespace BBWYB.Server.Business
///
public IList GetPurchaseSchemeList(QuerySchemeRequest request)
{
- var select = fsql.Select();
- if (request.SchemeId != null && request.SchemeId != 0)
- select = select.Where(ps => ps.Id == request.SchemeId);
+ #region 处理条件优先级
+ if (request.SchemeId != null)
+ {
+ request.SchemeIdList?.Clear();
+ request.SchemeGroupIdList?.Clear();
+ request.SkuIdList?.Clear();
+ request.ProductIdList?.Clear();
+ }
else if (request.SchemeIdList != null && request.SchemeIdList.Count() > 0)
- select = select.Where(ps => request.SchemeIdList.Contains(ps.Id));
- else
{
- 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));
+ request.SchemeGroupIdList?.Clear();
+ request.SkuIdList?.Clear();
+ request.ProductIdList?.Clear();
+ }
+ else if (request.SchemeGroupIdList != null && request.SchemeGroupIdList.Count() > 0)
+ {
+ request.SkuIdList?.Clear();
+ request.ProductIdList?.Clear();
+ }
+ else if (request.SkuIdList != null && request.SkuIdList.Count() > 0)
+ {
+ request.ProductIdList?.Clear();
+ }
+ #endregion
- if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
- {
- select = select.Where(ps => fsql.Select()
- .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());
- }
+ var select = fsql.Select()
+ .WhereIf(request.ShopId != null && request.ShopId != 0, ps => ps.ShopId == request.ShopId)
+ .WhereIf(request.SchemeId != null && request.SchemeId != 0, ps => ps.Id == request.SchemeId)
+ .WhereIf(request.SchemeIdList != null && request.SchemeIdList.Count() > 0, ps => request.SchemeIdList.Contains(ps.Id))
+ .WhereIf(request.SchemeGroupIdList != null && request.SchemeGroupIdList.Count() > 0, ps => request.SchemeGroupIdList.Contains(ps.SchemeGroupId))
+ .WhereIf(request.SkuIdList != null && request.SkuIdList.Count() > 0, ps => request.SkuIdList.Contains(ps.SkuId))
+ .WhereIf(request.ProductIdList != null && request.ProductIdList.Count() > 0, ps => request.ProductIdList.Contains(ps.ProductId));
+
+ if (request.PurchasePlatform != null || !string.IsNullOrEmpty(request.PurchaserId))
+ {
+ select = select.Where(ps => fsql.Select()
+ .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());
}
var sql = select.ToSql();
var purchaseSchemeList = select.OrderByDescending(ps => ps.CreateTime).ToList();
@@ -322,6 +344,26 @@ namespace BBWYB.Server.Business
return purchaseSchemeList;
}
+ public IList GetPurchaseSchemeAndGroupList(QuerySchemeAndGroupRequest request)
+ {
+ var purchaseSchemeGroupsList = fsql.Select()
+ .Where(psg => psg.ShopId == request.ShopId &&
+ request.ProductIdList.Contains(psg.ProductId))
+ .ToList();
+ if (purchaseSchemeGroupsList.Count() > 0)
+ {
+ var groupIds = purchaseSchemeGroupsList.Select(g => g.Id).ToList();
+ var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
+ {
+ IncludePurchaseSkuBasicInfo = request.IncludePurchaseSkuBasicInfo,
+ SchemeGroupIdList = groupIds
+ });
+ foreach (var psg in purchaseSchemeGroupsList)
+ psg.PurchaseSchemeList = purchaseSchemeList.Where(ps => ps.SchemeGroupId == psg.Id).ToList();
+ }
+ return purchaseSchemeGroupsList;
+ }
+
public IList GetPurchaseSchemeCountList(QuerySchemeCountRequest request)
{
var list = fsql.Select().Where(ps => request.SkuIdList.Contains(ps.SkuId))
@@ -467,21 +509,5 @@ namespace BBWYB.Server.Business
}
return list;
}
-
- //public void EditPurchaseRatio(EditPurchaseRatioAndActualPriceRequest request)
- //{
- // if (request.Ratio < 1)
- // request.Ratio = 1;
-
-
- // fsql.Update().Set(pss => pss.PurchaseRatio, request.Ratio)
- // .Set(pss => pss.ActualPrice, request.ActualPrice)
- // .Where(pss => pss.SkuPurchaseSchemeId == request.SchemeId &&
- // pss.SkuId == request.SkuId &&
- // pss.PurchaseSkuId == request.PurchaseSkuId)
- // .ExecuteAffrows();
-
-
- //}
}
}
diff --git a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
index 2da1ef0..4b9e582 100644
--- a/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
+++ b/BBWYB.Server.Model/Db/PurchaseScheme/PurchaseScheme.cs
@@ -67,8 +67,8 @@ namespace BBWYB.Server.Model
///
/// 分组Id
///
- [Column(DbType = "bigint", IsNullable = true)]
- public long? SchemeGroupId { get; set; }
+ [Column(DbType = "bigint")]
+ public long SchemeGroupId { get; set; } = 0;
[Column(IsIgnore = true)]
public List PurchaseSchemeProductList { get; set; }
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs
new file mode 100644
index 0000000..1f7cfa4
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeAndGroupRequest.cs
@@ -0,0 +1,20 @@
+namespace BBWYB.Server.Model.Dto
+{
+ public class QuerySchemeAndGroupRequest
+ {
+ ///
+ /// 店铺Id
+ ///
+ public long ShopId { get; set; }
+
+ ///
+ /// 店铺商品Id列表
+ ///
+ public IList ProductIdList { get; set; }
+
+ ///
+ /// 是否包含采购配件的基本信息(单价,Logo,标题等) 是=1 否=0或null
+ ///
+ public int? IncludePurchaseSkuBasicInfo { get; set; }
+ }
+}
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
index 0c2c4f1..04d8b45 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/QuerySchemeRequest.cs
@@ -5,18 +5,32 @@ namespace BBWYB.Server.Model.Dto
public class QuerySchemeRequest
{
///
- /// 采购方案Id
+ /// 采购方案Id,有值则忽略SchemeIdList,SchemeGroupIdList,SkuIdList,ProductIdList
///
public long? SchemeId { get; set; }
///
- /// 采购方案Id集合
+ /// 采购方案Id集合,有值则忽略SchemeGroupIdList,SkuIdList,ProductIdList
///
- public IList SchemeIdList { get; set; }
+ public List SchemeIdList { get; set; }
+
+ ///
+ /// 采购方案分组Id集合,有值则忽略SkuIdList,ProductIdList
+ ///
+ public List SchemeGroupIdList { get; set; }
+
+ ///
+ /// skuId集合,有值则忽略ProductIdList
+ ///
+ public List SkuIdList { get; set; }
+
+ ///
+ /// spuId集合,有值则忽略
+ ///
+ public List ProductIdList { get; set; }
public long? ShopId { get; set; }
- public IList SkuIdList { get; set; }
///
/// 采购商Id, 只要其中一个采购商品满足采购商条件则命中查询
diff --git a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs
index a4f0a20..d755cee 100644
--- a/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/PurchaseScheme/RefreshSchemeRequest.cs
@@ -2,6 +2,6 @@
{
public class RefreshSchemeRequest
{
- public IList SchemeIdList { get; set; }
+ public List SchemeIdList { get; set; }
}
}
diff --git a/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs
new file mode 100644
index 0000000..5229648
--- /dev/null
+++ b/BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeGroupResponse.cs
@@ -0,0 +1,9 @@
+using BBWYB.Server.Model.Db;
+
+namespace BBWYB.Server.Model.Dto
+{
+ public class PurchaseSchemeGroupResponse : PurchaseSchemeGroup
+ {
+ public IList PurchaseSchemeList { get; set; }
+ }
+}