mirror of
				https://github.com/v2board/v2board.git
				synced 2025-10-31 17:31:49 +08:00 
			
		
		
		
	update: add plan reset method
This commit is contained in:
		| @@ -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) { | ||||||
|  |             switch ($plan->reset_traffic_method) { | ||||||
|  |                 case null: { | ||||||
|                     $resetTrafficMethod = config('v2board.reset_traffic_method', 0); |                     $resetTrafficMethod = config('v2board.reset_traffic_method', 0); | ||||||
|                     switch ((int)$resetTrafficMethod) { |                     switch ((int)$resetTrafficMethod) { | ||||||
|             // 1 a month |                         // month first day | ||||||
|                         case 0: |                         case 0: | ||||||
|                 $this->resetByMonthFirstDay(); |                             $this->resetByMonthFirstDay($this->builder); | ||||||
|                             break; |                             break; | ||||||
|                         // expire day |                         // expire day | ||||||
|                         case 1: |                         case 1: | ||||||
|                 $this->resetByExpireDay(); |                             $this->resetByExpireDay($this->builder); | ||||||
|                             break; |                             break; | ||||||
|                         // no action |                         // no action | ||||||
|                         case 2: |                         case 2: | ||||||
|                             break; |                             break; | ||||||
|                     } |                     } | ||||||
|         DB::commit(); |                     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; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     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) { | ||||||
|   | |||||||
| @@ -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' => '流量重置方式格式有误' | ||||||
|         ]; |         ]; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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`; | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								public/assets/admin/umi.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/assets/admin/umi.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								public/theme/v2board/assets/umi.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/theme/v2board/assets/umi.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -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. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user