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 @@ - + - + @@ -70,9 +76,13 @@ 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')
-

订阅列表

+

订阅列表

-
-
# @sortablelink('id', '#') 用户 订阅码 请求次数 @sortablelink('times', '请求次数') 最后请求时间 封禁时间 封禁理由 {{$subscribe->ban_desc}} @can('admin.subscribe.set') - @endcan
- - - - - - - - - - - - @foreach($subscribeLog as $subscribe) - - - - - - - + + @endcan + + +
+
# 用户 请求IP 归属地 请求时间 访问
{{$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}}
+ + + + + + + - @endforeach - -
# 请求IP 归属地 请求时间 访问
+ + + @foreach($subscribeLog as $subscribe) + + {{$subscribe->id}} + + @if ($subscribe->request_ip) + {{$subscribe->request_ip}} + @endif + + {{$subscribe->ipInfo}} + {{$subscribe->request_time}} + {{trim($subscribe->request_header)}} + + @endforeach + + +