mirror of
				https://github.com/v2board/v2board.git
				synced 2025-10-31 17:31:49 +08:00 
			
		
		
		
	order assign
This commit is contained in:
		| @@ -2,13 +2,16 @@ | ||||
|  | ||||
| namespace App\Http\Controllers\Admin; | ||||
|  | ||||
| use App\Http\Requests\Admin\OrderAssign; | ||||
| use App\Http\Requests\Admin\OrderUpdate; | ||||
| use App\Services\OrderService; | ||||
| use App\Utils\Helper; | ||||
| use Illuminate\Http\Request; | ||||
| use App\Http\Controllers\Controller; | ||||
| use App\Models\Order; | ||||
| use App\Models\User; | ||||
| use App\Models\Plan; | ||||
| use Illuminate\Support\Facades\DB; | ||||
|  | ||||
| class OrderController extends Controller | ||||
| { | ||||
| @@ -100,4 +103,41 @@ class OrderController extends Controller | ||||
|             'data' => true | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     public function assign(OrderAssign $request) | ||||
|     { | ||||
|         $plan = Plan::find($request->input('plan_id')); | ||||
|         $user = User::where('email', $request->input('email')); | ||||
|  | ||||
|         if (!$user) { | ||||
|             abort(500, '该用户不存在'); | ||||
|         } | ||||
|  | ||||
|         if (!$plan) { | ||||
|             abort(500, '该订阅不存在'); | ||||
|         } | ||||
|  | ||||
|         DB::beginTransaction(); | ||||
|         $order = new Order(); | ||||
|         $orderService = new OrderService($order); | ||||
|         $order->user_id = $user->id; | ||||
|         $order->plan_id = $plan->id; | ||||
|         $order->cycle = $request->input('cycle'); | ||||
|         $order->trade_no = Helper::guid(); | ||||
|         $order->total_amount = $request->input('total_amount'); | ||||
|  | ||||
|         $orderService->setOrderType($user); | ||||
|         $orderService->setInvite($user); | ||||
|  | ||||
|         if (!$order->save()) { | ||||
|             DB::rollback(); | ||||
|             abort(500, '订单创建失败'); | ||||
|         } | ||||
|  | ||||
|         DB::commit(); | ||||
|  | ||||
|         return response([ | ||||
|             'data' => $order->trade_no | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										34
									
								
								app/Http/Requests/Admin/OrderAssign.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								app/Http/Requests/Admin/OrderAssign.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\Http\Requests\Admin; | ||||
|  | ||||
| use Illuminate\Foundation\Http\FormRequest; | ||||
|  | ||||
| class OrderAssign extends FormRequest | ||||
| { | ||||
|     /** | ||||
|      * Get the validation rules that apply to the request. | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public function rules() | ||||
|     { | ||||
|         return [ | ||||
|             'plan_id' => 'required', | ||||
|             'email' => 'required', | ||||
|             'total_amount' => 'required', | ||||
|             'cycle' => 'required|in:month_price,quarter_price,half_year_price,year_price,onetime_price,reset_price' | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     public function messages() | ||||
|     { | ||||
|         return [ | ||||
|             'plan_id.required' => '订阅不能为空', | ||||
|             'email.required' => '邮箱不能为空', | ||||
|             'total_amount.required' => '支付金额不能为空', | ||||
|             'cycle.required' => '订阅周期不能为空', | ||||
|             'cycle.in' => '订阅周期格式有误' | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
| @@ -36,6 +36,7 @@ class AdminRoute | ||||
|             $router->get ('/order/fetch', 'Admin\\OrderController@fetch'); | ||||
|             $router->post('/order/repair', 'Admin\\OrderController@repair'); | ||||
|             $router->post('/order/update', 'Admin\\OrderController@update'); | ||||
|             $router->post('/order/assign', 'Admin\\OrderController@assign'); | ||||
|             // User | ||||
|             $router->get ('/user/fetch', 'Admin\\UserController@fetch'); | ||||
|             $router->post('/user/update', 'Admin\\UserController@update'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user