6
0
Fork 0

添加App版本信息

release
vine_liutk 2021-12-20 12:05:48 +08:00
parent 741cdfb7fb
commit 1bab230f10
5 changed files with 103 additions and 0 deletions

View File

@ -0,0 +1,21 @@
<?php
namespace App\Endpoint\Api\Filters;
use EloquentFilter\ModelFilter;
class AppVersionFilter extends ModelFilter
{
public function cate($cate)
{
switch ($cate) {
case 'ios':
$this->onlyIos();
break;
case 'android':
$this->onlyAndroid();
break;
}
}
}

View File

@ -0,0 +1,36 @@
<?php
namespace App\Endpoint\Api\Http\Controllers;
use App\Endpoint\Api\Http\Resources\AppVersionResource;
use App\Exceptions\BizException;
use App\Models\AppVersion;
use Illuminate\Http\Request;
class AppVersionController extends Controller
{
/**
*
*
* @param \Illuminate\Http\Request $request
* @return void
*/
public function index(Request $request)
{
$cate = (string) $request->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);
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Endpoint\Api\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class AppVersionResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/
public function toArray($request)
{
return [
'name' => (string) $this->name,
'v' => (int) $this->v,
'is_force' => (bool) $this->is_force,
'link' => (string) $this->link,
];
}
}

View File

@ -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 () {
// 我的信息

View File

@ -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);
}
}