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; } + } +}