diff --git a/app/Admin/Controllers/StoreController.php b/app/Admin/Controllers/StoreController.php index df2662b4..2db5bb0d 100644 --- a/app/Admin/Controllers/StoreController.php +++ b/app/Admin/Controllers/StoreController.php @@ -19,11 +19,15 @@ class StoreController extends AdminController protected function grid() { return Grid::make(new Store(), function (Grid $grid) { + + $grid->model()->sort(); + $grid->column('id'); $grid->column('title'); $grid->column('image')->image('', 100, 100); + $grid->column('status')->switch(); + $grid->column('sort'); $grid->column('created_at'); - $grid->column('updated_at'); $grid->disableCreateButton(false); $grid->enableDialogCreate(); @@ -65,6 +69,8 @@ class StoreController extends AdminController return Form::make(new Store(), function (Form $form) { $form->display('id'); $form->text('title'); + $form->switch('status')->default(1); + $form->number('sort')->min(1)->default(1); $form->image('image') ->move('store/'.Carbon::now()->toDateString()) ->saveFullUrl() diff --git a/app/Endpoint/Api/Http/Controllers/StoreController.php b/app/Endpoint/Api/Http/Controllers/StoreController.php new file mode 100644 index 00000000..0745d3ae --- /dev/null +++ b/app/Endpoint/Api/Http/Controllers/StoreController.php @@ -0,0 +1,29 @@ +sort(); + if ($request->filled('title')) { + $query->where('title', 'like', '%'.$request->input('title').'%'); + } + + $list = $query->simplePaginate($request->input('per_page', 10)); + + return StoreResource::collection($list); + } + + public function show($id) + { + $info = Store::findOrFail($id); + + return StoreResource::make($info); + } +} diff --git a/app/Endpoint/Api/Http/Resources/StoreResource.php b/app/Endpoint/Api/Http/Resources/StoreResource.php new file mode 100644 index 00000000..647549a5 --- /dev/null +++ b/app/Endpoint/Api/Http/Resources/StoreResource.php @@ -0,0 +1,22 @@ + (string) $this->title, + 'image' => (string) $this->image, + ]; + } +} diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 3400e89b..3ee58b04 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -37,6 +37,7 @@ use App\Endpoint\Api\Http\Controllers\UserBankController; use App\Endpoint\Api\Http\Controllers\UserCouponController; use App\Endpoint\Api\Http\Controllers\ZoneController; use App\Endpoint\Api\Http\Controllers\Auth\MiniprogramController; +use App\Endpoint\Api\Http\Controllers\StoreController; use Illuminate\Support\Facades\Route; Route::group([ @@ -57,14 +58,6 @@ Route::group([ Route::post('register', RegisterController::class); Route::post('reset-password', ResetPasswordController::class); - // 微信小程序 - Route::group(['prefix' => 'wechat-mini'], function () { - Route::post('login', [MiniprogramController::class, 'login']); - Route::group(['middleware' => ['auth:api', \App\Endpoint\Api\Http\Middleware\CheckUserStatus::class]], function () { - Route::post('bind-phone', [MiniprogramController::class, 'bindPhone']); - }); - }); - Route::get('ads', [AdController::class, 'index']); // 商品分类 @@ -214,4 +207,14 @@ Route::group([ Route::post('bargains/bargain/{order}', [\App\Endpoint\Api\Http\Controllers\BargainController::class, 'bargain']); Route::post('bargains/create-mall-order/{bargainOrder}', [\App\Endpoint\Api\Http\Controllers\BargainController::class, 'createMallOrderByBargainOrder']); }); + + // 微信小程序 + Route::group(['prefix' => 'wechat-mini'], function () { + Route::post('login', [MiniprogramController::class, 'login']); + Route::group(['middleware' => ['auth:api', \App\Endpoint\Api\Http\Middleware\CheckUserStatus::class]], function () { + Route::post('bind-phone', [MiniprogramController::class, 'bindPhone']); + }); + }); + + Route::apiResource('store', StoreController::class)->only(['index', 'show']); }); diff --git a/app/Models/Store.php b/app/Models/Store.php index 772a58a3..f81ec49c 100644 --- a/app/Models/Store.php +++ b/app/Models/Store.php @@ -9,4 +9,19 @@ use Dcat\Admin\Traits\HasDateTimeFormatter; class Store extends Model { use HasFactory, HasDateTimeFormatter; + + protected $attributes = [ + 'status' => 1, + 'sort' => 1 + ]; + + public function scopeEffective($q) + { + return $q->where('status', 1); + } + + public function scopeSort($q) + { + return $q->orderBy('sort')->orderBy('id', 'desc'); + } } diff --git a/database/migrations/2022_05_06_161251_create_stores_table.php b/database/migrations/2022_05_06_161251_create_stores_table.php index 01f93a4a..57781a21 100644 --- a/database/migrations/2022_05_06_161251_create_stores_table.php +++ b/database/migrations/2022_05_06_161251_create_stores_table.php @@ -17,6 +17,8 @@ class CreateStoresTable extends Migration $table->id(); $table->string('title')->comment('标题'); $table->string('image')->comment('封面图'); + $table->tinyInteger('status')->default(1)->comment('状态(1: 可用, 0: 不可用)'); + $table->unsignedInteger('sort')->default(1)->comment('排序, 正序'); $table->timestamps(); }); }