diff --git a/BBWYB.Server.API/Controllers/PurchaserController.cs b/BBWYB.Server.API/Controllers/PurchaserController.cs
index e24c5dd..0bc88a4 100644
--- a/BBWYB.Server.API/Controllers/PurchaserController.cs
+++ b/BBWYB.Server.API/Controllers/PurchaserController.cs
@@ -14,6 +14,28 @@ namespace BBWYB.Server.API.Controllers
this.purchaserBusiness = purchaserBusiness;
}
+ ///
+ /// 根据关键词搜索采购商名称列表
+ ///
+ ///
+ ///
+ [HttpGet("{keywords}")]
+ public ListResponse QueryPurchaserNameList([FromRoute] string keywords)
+ {
+ return purchaserBusiness.QueryPurchaserNameList(keywords);
+ }
+
+ ///
+ /// 根据关键词搜索采购商产地列表
+ ///
+ ///
+ ///
+ [HttpGet("{keywords}")]
+ public ListResponse QueryPurchaserLocationList([FromRoute] string keywords)
+ {
+ return purchaserBusiness.QueryPurchaserLocationList(keywords);
+ }
+
///
/// 查询采购商列表
///
diff --git a/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs b/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
index 568ea12..21d9853 100644
--- a/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
+++ b/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs
@@ -14,9 +14,48 @@ namespace BBWYB.Server.Business
}
+ public ListResponse QueryPurchaserNameList(string keywords)
+ {
+ if (string.IsNullOrEmpty(keywords))
+ throw new BusinessException("关键字不能为空");
+ var list = fsql.Select().Where(p => p.Name.Contains(keywords)).Distinct().ToList(x => x.Name);
+ return new ListResponse { Items = list, TotalCount = list.Count() };
+ }
+
+ public ListResponse QueryPurchaserLocationList(string keywords)
+ {
+ if (string.IsNullOrEmpty(keywords))
+ throw new BusinessException("关键字不能为空");
+ var list = fsql.Select().Where(p => p.Location.Contains(keywords)).Distinct().ToList(x => x.Location);
+ return new ListResponse { Items = list, TotalCount = list.Count() };
+ }
+
public ListResponse QueryPurchaserList(QueryPurchaserRequest request)
{
- return new ListResponse();
+ if (request.PageSize > 20)
+ request.PageSize = 20;
+ var purchaserList = fsql.Select()
+ .WhereIf(!string.IsNullOrEmpty(request.Spu), p => fsql.Select()
+ .Where(psp1 => psp1.PurchaserId == p.Id &&
+ psp1.ProductId == request.Spu)
+ .Any())
+ .WhereIf(!string.IsNullOrEmpty(request.Sku), p => fsql.Select()
+ .Where(psp2 => psp2.PurchaserId == p.Id &&
+ psp2.SkuId == request.Sku)
+ .Any())
+ .WhereIf(request.PurchaserNameList != null && request.PurchaserNameList.Count() > 0, p => request.PurchaserNameList.Contains(p.Name))
+ .WhereIf(request.CategoryIdList != null && request.CategoryIdList.Count() > 0, p => fsql.Select()
+ .Where(per => per.PurchaserId == p.Id &&
+ request.CategoryIdList.Contains(per.ExtendedInfoId.Value)).Any())
+ .WhereIf(request.LocationList != null && request.LocationList.Count() > 0, p => request.LocationList.Contains(p.Location))
+ .Page(request.PageIndex, request.PageSize)
+ .Count(out var count)
+ .ToList();
+ return new ListResponse()
+ {
+ Items = purchaserList,
+ TotalCount = count
+ };
}
public ListResponse QueryPurchaserCategoryList(QueryPurchaserExtendedRequest request)
diff --git a/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserRequest.cs b/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserRequest.cs
index b8f6361..080d820 100644
--- a/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserRequest.cs
+++ b/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserRequest.cs
@@ -9,7 +9,7 @@
///
/// 采购商Id集合
///
- public List PurchaserIdList { get; set; }
+ public List PurchaserNameList { get; set; }
///
/// 主营类目Id集合
@@ -17,15 +17,19 @@
public List CategoryIdList { get; set; }
///
- /// 供应商产地
+ /// 供应商产地集合
///
- public string Location { get; set; }
+ public List LocationList { get; set; }
+
///
/// 页码 从1开始
///
public int PageIndex { get; set; }
+ ///
+ /// 页记录数 最大20
+ ///
public int PageSize { get; set; }
}
}