refactor: 修改几在模块支持多分类筛选

This commit is contained in:
2025-06-06 11:24:58 +08:00
parent be359bcb85
commit 9c149e7373
7 changed files with 43 additions and 3 deletions

View File

@@ -39,7 +39,11 @@ class Article
->language(request()->lang_id)
->where(function($query) use($param) {
if (isset($param['category_id'])) {
$query->where('category_id', '=', $param['category_id']);
if (str_contains($param['category_id'], ',') || is_array($param['category_id'])) {
$query->whereIn('category_id', $param['category_id']);
} else {
$query->where('category_id', '=', $param['category_id']);
}
}
})
->withSearch(['title', 'release_time'], [

View File

@@ -39,7 +39,11 @@ class BannerItem
->where('bnr.language_id', '=', request()->lang_id)
->where(function($query) use($param){
if (!empty($param['banner_id'])) {
$query->where('item.banner_id', '=', $param['banner_id']);
if (is_array($param['banner_id']) || str_contains($param['banner_id'], ',')) {
$query->whereIn('item.banner_id', $param['banner_id']);
} else {
$query->where('item.banner_id', '=', $param['banner_id']);
}
}
if (!empty($param['title'])) {
$query->where('item.title', 'like', "%{$param['title']}%");
@@ -284,7 +288,11 @@ class BannerItem
->where('banner.language_id', '=', request()->lang_id)
->where(function($query) use($param){
if (!empty($param['banner_id'])) {
$query->where('item.banner_id', '=', $param['banner_id']);
if (is_array($param['banner_id']) || str_contains($param['banner_id'], ',')) {
$query->whereIn('item.banner_id', $param['banner_id']);
} else {
$query->where('item.banner_id', '=', $param['banner_id']);
}
}
if (!empty($param['title'])) {
$query->where('item.title', 'like', "%{$param['title']}%");

View File

@@ -85,6 +85,10 @@ class ArticleModel extends ArticleBaseModel
// 分类查询
public function scopeCategory($query, $value)
{
if (is_array($value) || str_contains($value, ',')) {
$query->whereIn('category_id', $value);
return;
}
$query->where('category_id', '=', $value);
}
public function scopeCategoryNullable($query, $value)
@@ -92,6 +96,10 @@ class ArticleModel extends ArticleBaseModel
if (is_null($value)) {
return;
}
if (is_array($value) || str_contains($value, ',')) {
$query->whereIn('category_id', $value);
return;
}
$query->where('category_id', '=', $value);
}
}

View File

@@ -58,6 +58,10 @@ class AttachmentModel extends AttachmentBaseModel
public function scopeCategoryId($query, $value)
{
if (empty($value)) return;
if (is_array($value) || str_contains($value, ',')) {
$query->whereIn('category_id', $value);
return;
}
$query->where('category_id', '=', $value);
}
}

View File

@@ -65,10 +65,18 @@ class ProductModel extends ProductBaseModel
if (is_null($value)) {
return;
}
if (is_array($value) || str_contains($value, ',')) {
$query->whereIn('category_id', $value);
return;
}
$query->where('category_id', '=', $value);
}
public function scopeCategory($query, $value)
{
if (is_array($value) || str_contains($value, ',')) {
$query->whereIn('category_id', $value);
return;
}
$query->where('category_id', '=', $value);
}

View File

@@ -71,6 +71,10 @@ class SysBannerItemModel extends SysBannerItemBaseModel
public function scopeBannerId($query, $value)
{
if (is_null($value)) return;
if (is_array($value) || str_contains($value, ',')) {
$query->whereIn('banner_id', $value);
return;
}
$query->where('banner_id', '=', $value);
}
}

View File

@@ -62,6 +62,10 @@ class VideoModel extends VideoBaseModel
if (empty($value)) {
return;
}
if (is_array($value) || str_contains($value, ',')) {
$query->whereIn('category_id', $value);
return;
}
$query->where('category_id', '=', $value);
}
}