From 1bab230f1083c1fdad9e9963e87987fed1aeae60 Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Mon, 20 Dec 2021 12:05:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0App=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Endpoint/Api/Filters/AppVersionFilter.php | 21 +++++++++++ .../Http/Controllers/AppVersionController.php | 36 +++++++++++++++++++ .../Api/Http/Resources/AppVersionResource.php | 24 +++++++++++++ app/Endpoint/Api/routes.php | 4 +++ app/Models/AppVersion.php | 18 ++++++++++ 5 files changed, 103 insertions(+) create mode 100644 app/Endpoint/Api/Filters/AppVersionFilter.php create mode 100644 app/Endpoint/Api/Http/Controllers/AppVersionController.php create mode 100644 app/Endpoint/Api/Http/Resources/AppVersionResource.php diff --git a/app/Endpoint/Api/Filters/AppVersionFilter.php b/app/Endpoint/Api/Filters/AppVersionFilter.php new file mode 100644 index 00000000..97d377ba --- /dev/null +++ b/app/Endpoint/Api/Filters/AppVersionFilter.php @@ -0,0 +1,21 @@ +onlyIos(); + break; + + case 'android': + $this->onlyAndroid(); + break; + } + } +} diff --git a/app/Endpoint/Api/Http/Controllers/AppVersionController.php b/app/Endpoint/Api/Http/Controllers/AppVersionController.php new file mode 100644 index 00000000..374e06b1 --- /dev/null +++ b/app/Endpoint/Api/Http/Controllers/AppVersionController.php @@ -0,0 +1,36 @@ +query('cate'); + + if (empty($cate)) { + return response()->json([]); + } + + // dd($cate); + //只拿最新的版本信息 + $appVersion = AppVersion::filter($request->all()) + ->orderBy('v', 'desc')->orderBy('created_at', 'desc')->first(); + if (is_null($appVersion)) { + throw (new BizException('信息未找到'))->status(404); + } + + return AppVersionResource::make($appVersion); + } +} diff --git a/app/Endpoint/Api/Http/Resources/AppVersionResource.php b/app/Endpoint/Api/Http/Resources/AppVersionResource.php new file mode 100644 index 00000000..8562c7ca --- /dev/null +++ b/app/Endpoint/Api/Http/Resources/AppVersionResource.php @@ -0,0 +1,24 @@ + (string) $this->name, + 'v' => (int) $this->v, + 'is_force' => (bool) $this->is_force, + 'link' => (string) $this->link, + ]; + } +} diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 52c33f45..d46b5167 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -4,6 +4,7 @@ use App\Endpoint\Api\Http\Controllers\Account\ChangePasswordController; use App\Endpoint\Api\Http\Controllers\Account\UserController; use App\Endpoint\Api\Http\Controllers\AdController; use App\Endpoint\Api\Http\Controllers\AfterSaleController; +use App\Endpoint\Api\Http\Controllers\AppVersionController; use App\Endpoint\Api\Http\Controllers\ArticleController; use App\Endpoint\Api\Http\Controllers\Auth\LoginController; use App\Endpoint\Api\Http\Controllers\Auth\LogoutController; @@ -60,8 +61,11 @@ Route::group([ Route::get('product/products/{product}', [ProductSkuController::class, 'show']); //文章列表 Route::get('articles', [ArticleController::class, 'index']); + //指定文章配置 Route::get('article-config', [ArticleController::class, 'config']); + //获取最新app版本信息 + Route::get('app-version', [AppVersionController::class, 'index']); Route::middleware(['auth:api'])->group(function () { // 我的信息 diff --git a/app/Models/AppVersion.php b/app/Models/AppVersion.php index 84e64e4c..c5a6e3c5 100644 --- a/app/Models/AppVersion.php +++ b/app/Models/AppVersion.php @@ -3,15 +3,33 @@ namespace App\Models; use Dcat\Admin\Traits\HasDateTimeFormatter; +use EloquentFilter\Filterable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class AppVersion extends Model { + use Filterable; use HasFactory; use HasDateTimeFormatter; protected $casts = [ 'is_force' => 'bool', ]; + + /** + * 仅查询IOS + */ + public function scopeOnlyIos($query) + { + return $query->where('cate', 1); + } + + /** + * 仅查询Android + */ + public function scopeOnlyAndroid($query) + { + return $query->where('cate', 2); + } }