From f7db097a06757f7d2d2370509f816ea2712c4eb1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=94=E5=A7=AC=E6=A1=91?= <867057410@qq.com>
Date: Wed, 8 Jun 2022 22:23:10 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=A2=E9=98=85=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2=E6=98=BE=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/Admin/SubscribeController.php | 21 ++-
.../Controllers/User/SubscribeController.php | 2 +-
app/Models/UserSubscribe.php | 4 +
config/columnsortable.php | 2 +-
.../views/admin/subscribe/index.blade.php | 18 ++-
resources/views/admin/subscribe/log.blade.php | 147 ++++++++++++++----
6 files changed, 152 insertions(+), 42 deletions(-)
diff --git a/app/Http/Controllers/Admin/SubscribeController.php b/app/Http/Controllers/Admin/SubscribeController.php
index ffc6c997..7a49c417 100644
--- a/app/Http/Controllers/Admin/SubscribeController.php
+++ b/app/Http/Controllers/Admin/SubscribeController.php
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin;
use App\Components\IP;
use App\Http\Controllers\Controller;
+use App\Models\User;
use App\Models\UserSubscribe;
use App\Models\UserSubscribeLog;
use Illuminate\Http\Request;
@@ -33,16 +34,24 @@ class SubscribeController extends Controller
});
}
- return view('admin.subscribe.index', ['subscribeList' => $query->latest()->paginate(20)->appends($request->except('page'))]);
+ return view('admin.subscribe.index', ['subscribeList' => $query->sortable(['id' => 'desc'])->paginate(20)->appends($request->except('page'))]);
}
//订阅记录
- public function subscribeLog($id)
+ public function subscribeLog(Request $request, $id)
{
- $query = UserSubscribeLog::with('user:username');
+ $query = UserSubscribeLog::whereUserSubscribeId($id);
- if (isset($id)) {
- $query->whereUserSubscribeId($id);
+ $request->whenFilled('id', function ($value) use ($query) {
+ $query->where('id', $value);
+ });
+
+ $request->whenFilled('ip', function ($value) use ($query) {
+ $query->where('request_ip', 'like', "%{$value}%");
+ });
+
+ if ($request->filled('start')) {
+ $query->whereBetween('request_time', [$request->input('start').' 00:00:00', $request->input('end').' 23:59:59']);
}
$subscribeLogs = $query->latest()->paginate(20)->appends(\request('page'));
@@ -53,7 +62,7 @@ class SubscribeController extends Controller
}
}
- return view('admin.subscribe.log', ['subscribeLog' => $subscribeLogs]);
+ return view('admin.subscribe.log', ['subscribeLog' => $subscribeLogs, 'subscribe' => User::find($id)->subscribe]);
}
// 设置用户的订阅的状态
diff --git a/app/Http/Controllers/User/SubscribeController.php b/app/Http/Controllers/User/SubscribeController.php
index eb656bf5..59e6baea 100644
--- a/app/Http/Controllers/User/SubscribeController.php
+++ b/app/Http/Controllers/User/SubscribeController.php
@@ -66,7 +66,7 @@ class SubscribeController extends Controller
$subscribe->increment('times', 1);
// 记录每次请求
- $this->subscribeLog($subscribe->id, IP::getClientIp(), $request->headers);
+ $this->subscribeLog($subscribe->id, IP::getClientIp(), json_encode(['Host' => $request->getHost(), 'User-Agent' => $request->userAgent()]));
// 获取这个账号可用节点
$query = $user->nodes()->whereIsSubscribe(1);
diff --git a/app/Models/UserSubscribe.php b/app/Models/UserSubscribe.php
index ad85664a..43a2467e 100644
--- a/app/Models/UserSubscribe.php
+++ b/app/Models/UserSubscribe.php
@@ -6,12 +6,16 @@ use Auth;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
+use Kyslik\ColumnSortable\Sortable;
/**
* 用户订阅地址
*/
class UserSubscribe extends Model
{
+ use Sortable;
+
+ public $sortable = ['id', 'times'];
protected $table = 'user_subscribe';
protected $guarded = [];
diff --git a/config/columnsortable.php b/config/columnsortable.php
index e200c863..a1e8699c 100644
--- a/config/columnsortable.php
+++ b/config/columnsortable.php
@@ -15,7 +15,7 @@ return [
'class' => 'fas fa-sort-amount',
],
'numeric' => [
- 'rows' => ['created_at', 'updated_at', 'expired_at', 't', 'level', 'id', 'phone_number', 'port'],
+ 'rows' => ['created_at', 'updated_at', 'expired_at', 't', 'level', 'id', 'phone_number', 'port', 'times'],
'class' => 'fas fa-sort-numeric',
],
],
diff --git a/resources/views/admin/subscribe/index.blade.php b/resources/views/admin/subscribe/index.blade.php
index 687167ce..5022087c 100644
--- a/resources/views/admin/subscribe/index.blade.php
+++ b/resources/views/admin/subscribe/index.blade.php
@@ -1,6 +1,12 @@
@extends('admin.layouts')
@section('css')
+
@endsection
@section('content')
@@ -34,10 +40,10 @@
- | # |
+ @sortablelink('id', '#') |
用户 |
订阅码 |
- 请求次数 |
+ @sortablelink('times', '请求次数') |
最后请求时间 |
封禁时间 |
封禁理由 |
@@ -70,9 +76,13 @@
{{$subscribe->ban_desc}} |
@can('admin.subscribe.set')
-
@endcan
|
diff --git a/resources/views/admin/subscribe/log.blade.php b/resources/views/admin/subscribe/log.blade.php
index aa63f226..f979823a 100644
--- a/resources/views/admin/subscribe/log.blade.php
+++ b/resources/views/admin/subscribe/log.blade.php
@@ -1,44 +1,107 @@
@extends('admin.layouts')
@section('css')
+
@endsection
@section('content')
-
订阅列表
+ 订阅列表
-
-
-
-
- | # |
- 用户 |
- 请求IP |
- 归属地 |
- 请求时间 |
- 访问 |
-
-
-
- @foreach($subscribeLog as $subscribe)
-
- | {{$subscribe->id}} |
- {{$subscribe->user->username ?? '用户已删除'}} |
-
- @if ($subscribe->request_ip)
- {{$subscribe->request_ip}}
+
+
+
+
+ -
+ 用 户: {{ $subscribe->user->nickname ?? '用户已删除' }}
+
+ -
+ 账 号: {{ $subscribe->user->username ?? '用户已删除' }}
+
+ -
+ 状 态: {!! $subscribe->status ? '' : '' !!}
+
+ -
+ 请求次数:
{{ $subscribe->times }}
+
+ -
+ 最后请求: {{ $subscribe->updated_at }}
+
+ @if($subscribe->ban_time)
+ -
+ 封禁截至: {{ date('Y-m-d H:i', $subscribe->ban_time )}}
+
+ -
+ 封禁理由: {{ $subscribe->ban_desc }}
+
+ @endif
+ @can('admin.subscribe.set')
+ |
-
- {{$subscribe->ipInfo}}
- |
- {{$subscribe->request_time}} |
- {{$subscribe->request_header}} |
+
+ @endcan
+
+
+
+
+
+
+ | # |
+ 请求IP |
+ 归属地 |
+ 请求时间 |
+ 访问 |
- @endforeach
-
-
+
+
+ @foreach($subscribeLog as $subscribe)
+
+ | {{$subscribe->id}} |
+
+ @if ($subscribe->request_ip)
+ {{$subscribe->request_ip}}
+ @endif
+ |
+ {{$subscribe->ipInfo}} |
+ {{$subscribe->request_time}} |
+ {{trim($subscribe->request_header)}} |
+
+ @endforeach
+
+
+