fixed 订阅界面参数错误,自动任务-订阅异常改回为以多IP订阅异常为判断条件

This commit is contained in:
兔姬桑
2020-08-31 02:43:23 +08:00
parent cf166fb2ea
commit 85183a9981
2 changed files with 15 additions and 16 deletions

View File

@@ -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小时内请求异常');
}
}
}

View File

@@ -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'));