mirror of
https://github.com/ProxyPanel/ProxyPanel.git
synced 2026-04-13 07:59:20 +00:00
fixed 订阅界面参数错误,自动任务-订阅异常改回为以多IP订阅异常为判断条件
This commit is contained in:
@@ -13,7 +13,6 @@ use App\Models\Order;
|
||||
use App\Models\User;
|
||||
use App\Models\UserBanedLog;
|
||||
use App\Models\UserHourlyDataFlow;
|
||||
use App\Models\UserSubscribeLog;
|
||||
use App\Models\VerifyCode;
|
||||
use Cache;
|
||||
use Illuminate\Console\Command;
|
||||
@@ -91,25 +90,25 @@ class AutoJob extends Command {
|
||||
// 封禁访问异常的订阅链接
|
||||
private function blockSubscribe(): void {
|
||||
if(sysConfig('is_subscribe_ban')){
|
||||
$pastSubLogs = UserSubscribeLog::where('request_time', '>=', date("Y-m-d H:i:s", strtotime("-1 days")))
|
||||
->groupBy('user_subscribe_id')
|
||||
->selectRaw('count(*) as total, user_subscribe_id')
|
||||
->get();
|
||||
foreach($pastSubLogs as $log){
|
||||
if($log->total >= sysConfig('subscribe_ban_times')){
|
||||
$subscribe = $log->subscribe;
|
||||
$ret = $subscribe->update([
|
||||
$subscribe_ban_times = sysConfig('subscribe_ban_times');
|
||||
foreach(User::activeUser()->with('subscribe')->get() as $user){
|
||||
if(!$user->subscribe || $user->subscribe->status === 0){ // 无订阅链接 或 已封
|
||||
continue;
|
||||
}
|
||||
// 24小时内不同IP的请求次数
|
||||
$request_times = $user->subscribeLogs()
|
||||
->where('request_time', '>=', date("Y-m-d H:i:s", strtotime("-1 days")))
|
||||
->distinct()
|
||||
->count('request_ip');
|
||||
if($request_times >= $subscribe_ban_times){
|
||||
$user->subscribe->update([
|
||||
'status' => 0,
|
||||
'ban_time' => time(),
|
||||
'ban_time' => strtotime("+".sysConfig('traffic_ban_time')." minutes"),
|
||||
'ban_desc' => '存在异常,自动封禁'
|
||||
]);
|
||||
|
||||
// 记录封禁日志
|
||||
if($ret){
|
||||
$this->addUserBanLog($subscribe->user_id, 0, '【完全封禁订阅】-订阅24小时内请求异常');
|
||||
}else{
|
||||
Log::error('【自动化任务】封禁订阅失败,尝试封禁订阅ID:'.$subscribe->id);
|
||||
}
|
||||
$this->addUserBanLog($user->id, 0, '【完全封禁订阅】-订阅24小时内请求异常');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class SubscribeController extends Controller {
|
||||
$query = UserSubscribeLog::with('user:email');
|
||||
|
||||
if(isset($id)){
|
||||
$query->whereSubscribeId($id);
|
||||
$query->whereUserSubscribeId($id);
|
||||
}
|
||||
|
||||
$view['subscribeLog'] = $query->latest()->paginate(20)->appends($request->except('page'));
|
||||
|
||||
Reference in New Issue
Block a user