Merge pull request #54 from sakurauidev/ResetTraffic

将周期重置流量只重置已使用流量修改为重置已使用流量的同时重置当总流量为当前订阅所设置的流量
This commit is contained in:
Xboard 2024-01-13 12:11:14 +08:00 committed by GitHub
commit 03267b2051
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -107,24 +107,45 @@ class ResetTraffic extends Command
private function resetByExpireYear($builder): void private function resetByExpireYear($builder): void
{ {
$users = [];
foreach ($builder->get() as $item) { $users = $builder->with('plan')->get();
$expireDay = date('m-d', $item->expired_at); $usersToUpdate = [];
foreach ($users as $user) {
$expireDay = date('m-d', $user->expired_at);
$today = date('m-d'); $today = date('m-d');
if ($expireDay === $today) { if ($expireDay === $today) {
array_push($users, $item->id); $usersToUpdate[] = [
'id' => $user->id,
'transfer_enable' => $user->plan->transfer_enable
];
} }
} }
User::whereIn('id', $users)->update([
foreach ($usersToUpdate as $userData) {
User::where('id', $userData['id'])->update([
'transfer_enable' => (intval($userData['transfer_enable']) * 1073741824),
'u' => 0, 'u' => 0,
'd' => 0 'd' => 0
]); ]);
} }
}
private function resetByYearFirstDay($builder): void private function resetByYearFirstDay($builder): void
{ {
$users = $builder->with('plan')->get();
$usersToUpdate = [];
foreach ($users as $user) {
if ((string) date('md') === '0101') { if ((string) date('md') === '0101') {
$builder->update([ $usersToUpdate[] = [
'id' => $user->id,
'transfer_enable' => $user->plan->transfer_enable
];
}
}
foreach ($usersToUpdate as $userData) {
User::where('id', $userData['id'])->update([
'transfer_enable' => (intval($userData['transfer_enable']) * 1073741824),
'u' => 0, 'u' => 0,
'd' => 0 'd' => 0
]); ]);
@ -133,32 +154,48 @@ class ResetTraffic extends Command
private function resetByMonthFirstDay($builder): void private function resetByMonthFirstDay($builder): void
{ {
$users = $builder->with('plan')->get();
$usersToUpdate = [];
foreach ($users as $user) {
if ((string) date('d') === '01') { if ((string) date('d') === '01') {
$builder->update([ $usersToUpdate[] = [
'id' => $user->id,
'transfer_enable' => $user->plan->transfer_enable
];
}
}
foreach ($usersToUpdate as $userData) {
User::where('id', $userData['id'])->update([
'transfer_enable' => (intval($userData['transfer_enable']) * 1073741824),
'u' => 0, 'u' => 0,
'd' => 0 'd' => 0
]); ]);
} }
} }
private function resetByExpireDay($builder): void private function resetByExpireDay($builder): void
{ {
$lastDay = date('d', strtotime('last day of +0 months')); $lastDay = date('d', strtotime('last day of +0 months'));
$users = [];
foreach ($builder->get() as $item) {
$expireDay = date('d', $item->expired_at);
$today = date('d'); $today = date('d');
if ($expireDay === $today) { $users = $builder->with('plan')->get();
array_push($users, $item->id); $usersToUpdate = [];
foreach ($users as $user) {
$expireDay = date('d', $user->expired_at);
if ($expireDay === $today || ($today === $lastDay && $expireDay >= $today)) {
$usersToUpdate[] = [
'id' => $user->id,
'transfer_enable' => $user->plan->transfer_enable
];
}
} }
if (($today === $lastDay) && $expireDay >= $lastDay) { foreach ($usersToUpdate as $userData) {
array_push($users, $item->id); User::where('id', $userData['id'])->update([
} 'transfer_enable' => (intval($userData['transfer_enable']) * 1073741824),
}
User::whereIn('id', $users)->update([
'u' => 0, 'u' => 0,
'd' => 0 'd' => 0
]); ]);
} }
} }
}