From 4cd46a03f0069f429419a3f8e6d166f96e42ea49 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Sun, 7 Apr 2024 14:00:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=A9=E7=A7=8D=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Filters/KeywordFilter.php | 20 +++++++++++++++++++ .../Controllers/Api/LotteryTypeController.php | 19 ++++++++++++++++++ app/Models/Keyword.php | 6 ++++++ routes/api.php | 3 +++ 4 files changed, 48 insertions(+) create mode 100644 app/Filters/KeywordFilter.php create mode 100644 app/Http/Controllers/Api/LotteryTypeController.php diff --git a/app/Filters/KeywordFilter.php b/app/Filters/KeywordFilter.php new file mode 100644 index 0000000..ad10cf6 --- /dev/null +++ b/app/Filters/KeywordFilter.php @@ -0,0 +1,20 @@ +first(); + + $this->when( + $parent, + fn ($query) => $query->where('parent_id', $parent->id), + fn ($query) => $query->whereRaw('1!=1'), + ); + } +} diff --git a/app/Http/Controllers/Api/LotteryTypeController.php b/app/Http/Controllers/Api/LotteryTypeController.php new file mode 100644 index 0000000..6c0ebf7 --- /dev/null +++ b/app/Http/Controllers/Api/LotteryTypeController.php @@ -0,0 +1,19 @@ + 'lottery_type'])->oldest('sort')->get(); + + return $lotteryTypes->map(fn ($item) => [ + 'id' => $item->value, + 'name' => $item->name, + ]); + } +} diff --git a/app/Models/Keyword.php b/app/Models/Keyword.php index 91890bd..b867206 100644 --- a/app/Models/Keyword.php +++ b/app/Models/Keyword.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Admin\Components; +use App\Filters\KeywordFilter; use EloquentFilter\Filterable; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -72,6 +73,11 @@ class Keyword extends Model .'-%' ?? ''); } + public function modelFilter(): string + { + return KeywordFilter::class; + } + public static function tagsMap(string $key) { $mapArr = []; diff --git a/routes/api.php b/routes/api.php index 3d8cbcd..e88990b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -3,6 +3,7 @@ use App\Http\Controllers\Api\Auth\AccessTokenController; use App\Http\Controllers\Api\ComplaintController; use App\Http\Controllers\Api\FeedbackController; +use App\Http\Controllers\Api\LotteryTypeController; use Illuminate\Support\Facades\Route; Route::post('/auth/login', [AccessTokenController::class, 'store']); @@ -11,6 +12,8 @@ Route::delete('/auth/logout', [AccessTokenController::class, 'destroy']); Route::group([ 'middleware' => ['auth:api'], ], function () { + // 彩种类型 + Route::get('lottery-types', [LotteryTypeController::class, 'index']); // 举报投诉 Route::post('complaints', [ComplaintController::class, 'store']); // 意见箱