update: add plan reset method

This commit is contained in:
tokumeikoi 2021-09-21 18:51:53 +09:00
parent 25b3b11efd
commit 7a4bd468a2
7 changed files with 55 additions and 26 deletions

View File

@ -2,6 +2,7 @@
namespace App\Console\Commands; namespace App\Console\Commands;
use App\Models\Plan;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use App\Models\User; use App\Models\User;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@ -43,27 +44,44 @@ class ResetTraffic extends Command
public function handle() public function handle()
{ {
ini_set('memory_limit', -1); ini_set('memory_limit', -1);
DB::beginTransaction(); foreach (Plan::get() as $plan) {
$resetTrafficMethod = config('v2board.reset_traffic_method', 0); switch ($plan->reset_traffic_method) {
switch ((int)$resetTrafficMethod) { case null: {
// 1 a month $resetTrafficMethod = config('v2board.reset_traffic_method', 0);
case 0: switch ((int)$resetTrafficMethod) {
$this->resetByMonthFirstDay(); // month first day
break; case 0:
// expire day $this->resetByMonthFirstDay($this->builder);
case 1: break;
$this->resetByExpireDay(); // expire day
break; case 1:
// no action $this->resetByExpireDay($this->builder);
case 2: break;
break; // no action
case 2:
break;
}
break;
}
case 0: {
$builder = $this->builder->where('plan_id', $plan->id);
$this->resetByMonthFirstDay($builder);
break;
}
case 1: {
$builder = $this->builder->where('plan_id', $plan->id);
$this->resetByExpireDay($builder);
break;
}
case 2: {
break;
}
}
} }
DB::commit();
} }
private function resetByMonthFirstDay():void private function resetByMonthFirstDay($builder):void
{ {
$builder = $this->builder;
if ((string)date('d') === '01') { if ((string)date('d') === '01') {
$builder->update([ $builder->update([
'u' => 0, 'u' => 0,
@ -72,9 +90,8 @@ class ResetTraffic extends Command
} }
} }
private function resetByExpireDay():void private function resetByExpireDay($builder):void
{ {
$builder = $this->builder;
$lastDay = date('d', strtotime('last day of +0 months')); $lastDay = date('d', strtotime('last day of +0 months'));
$users = []; $users = [];
foreach ($builder->get() as $item) { foreach ($builder->get() as $item) {

View File

@ -25,7 +25,8 @@ class PlanSave extends FormRequest
'two_year_price' => 'nullable|integer', 'two_year_price' => 'nullable|integer',
'three_year_price' => 'nullable|integer', 'three_year_price' => 'nullable|integer',
'onetime_price' => 'nullable|integer', 'onetime_price' => 'nullable|integer',
'reset_price' => 'nullable|integer' 'reset_price' => 'nullable|integer',
'reset_traffic_method' => 'nullable|integer|in:0,1,2'
]; ];
} }
@ -44,7 +45,9 @@ class PlanSave extends FormRequest
'two_year_price.integer' => '两年付金额格式有误', 'two_year_price.integer' => '两年付金额格式有误',
'three_year_price.integer' => '三年付金额格式有误', 'three_year_price.integer' => '三年付金额格式有误',
'onetime_price.integer' => '一次性金额有误', 'onetime_price.integer' => '一次性金额有误',
'reset_price.integer' => '流量重置包金额有误' 'reset_price.integer' => '流量重置包金额有误',
'reset_traffic_method.integer' => '流量重置方式格式有误',
'reset_traffic_method.in' => '流量重置方式格式有误'
]; ];
} }
} }

View File

@ -165,6 +165,7 @@ CREATE TABLE `v2_plan` (
`three_year_price` int(11) DEFAULT NULL, `three_year_price` int(11) DEFAULT NULL,
`onetime_price` int(11) DEFAULT NULL, `onetime_price` int(11) DEFAULT NULL,
`reset_price` int(11) DEFAULT NULL, `reset_price` int(11) DEFAULT NULL,
`reset_traffic_method` tinyint(1) DEFAULT NULL,
`created_at` int(11) NOT NULL, `created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
@ -367,4 +368,4 @@ CREATE TABLE `v2_user` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 2021-09-18 12:00:43 -- 2021-09-20 15:35:06

View File

@ -452,3 +452,6 @@ CREATE TABLE `v2_commission_log` (
`created_at` int(11) NOT NULL, `created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL `updated_at` int(11) NOT NULL
) COLLATE 'utf8mb4_general_ci'; ) COLLATE 'utf8mb4_general_ci';
ALTER TABLE `v2_plan`
ADD `reset_traffic_method` tinyint(1) NULL AFTER `reset_price`;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -20,6 +20,11 @@
## Sponsors ## Sponsors
Thanks to the open source project license provided by [Jetbrains](https://www.jetbrains.com/) Thanks to the open source project license provided by [Jetbrains](https://www.jetbrains.com/)
## Other ## Community
Telegram Channel: [@v2board](https://t.me/v2board) Telegram Channel: [@v2board](https://t.me/v2board)
We have closed issue. If you want to find us, please contact us through the telegram group.
## Rules
1.We have closed issue. If you want to find us, please contact us through the telegram group.
2.Forward, Please indicate the original repo.
3.This repo is v2board api interface open source.
4.Due to the copyright problem, we have no plan to open source the front-end, but the front-end code is still readable.