From 0f06586217eadf79243e75f3b4a2e27614d594cf Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Fri, 6 Jun 2025 11:24:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=E5=87=A0?= =?UTF-8?q?=E5=9C=A8=E6=A8=A1=E5=9D=97=E6=94=AF=E6=8C=81=E5=A4=9A=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/Article.php | 6 +++++- app/admin/controller/v1/BannerItem.php | 12 ++++++++++-- app/admin/model/v1/ArticleModel.php | 8 ++++++++ app/admin/model/v1/AttachmentModel.php | 4 ++++ app/admin/model/v1/ProductModel.php | 8 ++++++++ app/admin/model/v1/SysBannerItemModel.php | 4 ++++ app/admin/model/v1/VideoModel.php | 4 ++++ 7 files changed, 43 insertions(+), 3 deletions(-) diff --git a/app/admin/controller/v1/Article.php b/app/admin/controller/v1/Article.php index bcd1d5e2..4c4adf55 100644 --- a/app/admin/controller/v1/Article.php +++ b/app/admin/controller/v1/Article.php @@ -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'], [ diff --git a/app/admin/controller/v1/BannerItem.php b/app/admin/controller/v1/BannerItem.php index 85f2d0c2..7844309e 100644 --- a/app/admin/controller/v1/BannerItem.php +++ b/app/admin/controller/v1/BannerItem.php @@ -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']}%"); diff --git a/app/admin/model/v1/ArticleModel.php b/app/admin/model/v1/ArticleModel.php index 9d20a662..763f1a74 100644 --- a/app/admin/model/v1/ArticleModel.php +++ b/app/admin/model/v1/ArticleModel.php @@ -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); } } diff --git a/app/admin/model/v1/AttachmentModel.php b/app/admin/model/v1/AttachmentModel.php index 21a6006d..f2dc1c6a 100644 --- a/app/admin/model/v1/AttachmentModel.php +++ b/app/admin/model/v1/AttachmentModel.php @@ -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); } } diff --git a/app/admin/model/v1/ProductModel.php b/app/admin/model/v1/ProductModel.php index e73fe5e5..8f970687 100644 --- a/app/admin/model/v1/ProductModel.php +++ b/app/admin/model/v1/ProductModel.php @@ -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); } diff --git a/app/admin/model/v1/SysBannerItemModel.php b/app/admin/model/v1/SysBannerItemModel.php index abcd7f61..884efe77 100644 --- a/app/admin/model/v1/SysBannerItemModel.php +++ b/app/admin/model/v1/SysBannerItemModel.php @@ -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); } } diff --git a/app/admin/model/v1/VideoModel.php b/app/admin/model/v1/VideoModel.php index 9f029c9c..08d1bfc3 100644 --- a/app/admin/model/v1/VideoModel.php +++ b/app/admin/model/v1/VideoModel.php @@ -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); } }