diff --git a/app/Http/Controllers/OperationLogController.php b/app/Http/Controllers/OperationLogController.php new file mode 100644 index 0000000..d923e7f --- /dev/null +++ b/app/Http/Controllers/OperationLogController.php @@ -0,0 +1,20 @@ +all())->orderBy('created_at', 'desc'); + + $list = $query->paginate(Paginator::resolvePerPage('per_page', 20, 50)); + + return $this->json(OperationLogResource::collection($list)); + } +} diff --git a/app/Http/Resources/OperationLogResource.php b/app/Http/Resources/OperationLogResource.php new file mode 100644 index 0000000..4414bbe --- /dev/null +++ b/app/Http/Resources/OperationLogResource.php @@ -0,0 +1,26 @@ + $this->id, + 'user_name' => $this->user_name, + 'type' => $this->type, + 'message' => $this->message, + 'input_data' => $this->input_data, + 'created_at' => strtotime($this->created_at) ?? 0, //录入时间 + ]; + } +} diff --git a/app/ModelFilters/OperationLogFilter.php b/app/ModelFilters/OperationLogFilter.php new file mode 100644 index 0000000..bcf224c --- /dev/null +++ b/app/ModelFilters/OperationLogFilter.php @@ -0,0 +1,16 @@ +where('type', $type); + } + + public function user($user){ + return $this->where('user_id', $user); + } +} diff --git a/app/Models/OperationLog.php b/app/Models/OperationLog.php index f238d9f..df74a5b 100644 --- a/app/Models/OperationLog.php +++ b/app/Models/OperationLog.php @@ -5,10 +5,11 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use App\Enums\OperationType; +use EloquentFilter\Filterable; class OperationLog extends Model { - use HasFactory; + use HasFactory, Filterable; protected $casts = [ 'type' => OperationType::class, diff --git a/routes/api.php b/routes/api.php index 152bf8c..63d58fd 100644 --- a/routes/api.php +++ b/routes/api.php @@ -59,6 +59,9 @@ Route::group(['middleware' => 'auth:sanctum'], function () { //友情链接 Route::apiResource('friend-links', FriendLinkController::class)->only(['index'])->names('friend_links'); + //操作日志 + Route::apiResource('operation-logs', OperationLogController::class)->only(['index'])->names('operation_logs'); + /**统计 **/ Route::get('crop-yield-quarter-statics', [CropYieldController::class, 'quarterStaticsChart']); //季度统计 Route::get('crop-yield-category-statics', [CropYieldController::class, 'categoryStaticsChart']); //行业统计产值