diff --git a/app/Endpoint/Api/Http/Controllers/Product/ProductViewLogController.php b/app/Endpoint/Api/Http/Controllers/Product/ProductViewLogController.php new file mode 100644 index 00000000..dc77c319 --- /dev/null +++ b/app/Endpoint/Api/Http/Controllers/Product/ProductViewLogController.php @@ -0,0 +1,31 @@ +user(); + + $logs = ProductViewLog::with(['sku']) + ->where('user_id', $user->id) + ->whereHas('sku') + ->latest('updated_at') + ->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50)); + + return ProductViewLogResource::collection($logs); + } +} diff --git a/app/Endpoint/Api/Http/Resources/ProductViewLogResource.php b/app/Endpoint/Api/Http/Resources/ProductViewLogResource.php new file mode 100644 index 00000000..02d520ff --- /dev/null +++ b/app/Endpoint/Api/Http/Resources/ProductViewLogResource.php @@ -0,0 +1,24 @@ + $this->id, + 'sku' => ProductSkuSimpleResource::make($this->whenLoaded('sku')), + 'view_date' => $this->view_date->toDateString(), + ]; + } +} diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 2ad4c44d..d19dcbfe 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -7,6 +7,7 @@ use App\Endpoint\Api\Http\Controllers\LogoutController; use App\Endpoint\Api\Http\Controllers\Product\HotController; use App\Endpoint\Api\Http\Controllers\Product\ProductCategoryController; use App\Endpoint\Api\Http\Controllers\Product\ProductSkuController; +use App\Endpoint\Api\Http\Controllers\Product\ProductViewLogController; use App\Endpoint\Api\Http\Controllers\RegisterController; use App\Endpoint\Api\Http\Controllers\SmsCodeController; use Illuminate\Support\Facades\Route; @@ -37,5 +38,9 @@ Route::group([ Route::get('products', [ProductSkuController::class, 'index']); // 查看商品 Route::get('products/{product}', [ProductSkuController::class, 'show']); + + Route::middleware(['auth:api'])->group(function () { + Route::get('product-view-logs', [ProductViewLogController::class, 'index']); + }); }); });