mirror of
				https://github.com/v2board/v2board.git
				synced 2025-10-31 09:21:46 +08:00 
			
		
		
		
	coupon plan limit
This commit is contained in:
		| @@ -12,22 +12,21 @@ class CouponController extends Controller | |||||||
| { | { | ||||||
|     public function fetch(Request $request) |     public function fetch(Request $request) | ||||||
|     { |     { | ||||||
|  |         $coupons = Coupon::all(); | ||||||
|  |         foreach ($coupons as $k => $v) { | ||||||
|  |             if ($coupons[$k]['limit_plan_ids']) $coupons[$k]['limit_plan_ids'] = json_decode($coupons[$k]['limit_plan_ids']); | ||||||
|  |         } | ||||||
|         return response([ |         return response([ | ||||||
|             'data' => Coupon::all() |             'data' => $coupons | ||||||
|         ]); |         ]); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function save(CouponSave $request) |     public function save(CouponSave $request) | ||||||
|     { |     { | ||||||
|         $params = $request->only([ |         $params = $request->only(array_keys(CouponSave::RULES)); | ||||||
|             'name', |         if (isset($params['limit_plan_ids'])) { | ||||||
|             'type', |             $params['limit_plan_ids'] = json_encode($params['limit_plan_ids']); | ||||||
|             'value', |         } | ||||||
|             'started_at', |  | ||||||
|             'ended_at', |  | ||||||
|             'limit_use' |  | ||||||
|         ]); |  | ||||||
|  |  | ||||||
|         if (!$request->input('id')) { |         if (!$request->input('id')) { | ||||||
|             $params['code'] = Helper::randomChar(8); |             $params['code'] = Helper::randomChar(8); | ||||||
|             if (!Coupon::create($params)) { |             if (!Coupon::create($params)) { | ||||||
|   | |||||||
| @@ -26,6 +26,13 @@ class CouponController extends Controller | |||||||
|         if (time() > $coupon->ended_at) { |         if (time() > $coupon->ended_at) { | ||||||
|             abort(500, '优惠券已过期'); |             abort(500, '优惠券已过期'); | ||||||
|         } |         } | ||||||
|  |         if ($coupon->limit_plan_ids) { | ||||||
|  |             $limitPlanIds = json_decode($coupon->limit_plan_ids); | ||||||
|  |             info($limitPlanIds); | ||||||
|  |             if (!in_array($request->input('plan_id'), $limitPlanIds)) { | ||||||
|  |                 abort(500, '这个计划无法使用该优惠码'); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|         return response([ |         return response([ | ||||||
|             'data' => $coupon |             'data' => $coupon | ||||||
|         ]); |         ]); | ||||||
|   | |||||||
| @@ -6,6 +6,15 @@ use Illuminate\Foundation\Http\FormRequest; | |||||||
|  |  | ||||||
| class CouponSave extends FormRequest | class CouponSave extends FormRequest | ||||||
| { | { | ||||||
|  |     const RULES = [ | ||||||
|  |         'name' => 'required', | ||||||
|  |         'type' => 'required|in:1,2', | ||||||
|  |         'value' => 'required|integer', | ||||||
|  |         'started_at' => 'required|integer', | ||||||
|  |         'ended_at' => 'required|integer', | ||||||
|  |         'limit_use' => 'nullable|integer', | ||||||
|  |         'limit_plan_ids' => 'nullable|array' | ||||||
|  |     ]; | ||||||
|     /** |     /** | ||||||
|      * Get the validation rules that apply to the request. |      * Get the validation rules that apply to the request. | ||||||
|      * |      * | ||||||
| @@ -13,14 +22,7 @@ class CouponSave extends FormRequest | |||||||
|      */ |      */ | ||||||
|     public function rules() |     public function rules() | ||||||
|     { |     { | ||||||
|         return [ |         return self::RULES; | ||||||
|             'name' => 'required', |  | ||||||
|             'type' => 'required|in:1,2', |  | ||||||
|             'value' => 'required|integer', |  | ||||||
|             'started_at' => 'required|integer', |  | ||||||
|             'ended_at' => 'required|integer', |  | ||||||
|             'limit_use' => 'nullable|integer' |  | ||||||
|         ]; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public function messages() |     public function messages() | ||||||
| @@ -35,7 +37,8 @@ class CouponSave extends FormRequest | |||||||
|             'started_at.integer' => '开始时间格式有误', |             'started_at.integer' => '开始时间格式有误', | ||||||
|             'ended_at.required' => '结束时间不能为空', |             'ended_at.required' => '结束时间不能为空', | ||||||
|             'ended_at.integer' => '结束时间格式有误', |             'ended_at.integer' => '结束时间格式有误', | ||||||
|             'limit_use.integer' => '使用次数格式有误' |             'limit_use.integer' => '使用次数格式有误', | ||||||
|  |             'limit_plan_ids.array' => '指定订阅格式有误' | ||||||
|         ]; |         ]; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -43,6 +43,12 @@ class CouponService | |||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |         if ($this->coupon->limit_plan_ids) { | ||||||
|  |             $limitPlanIds = json_decode($this->coupon->limit_plan_ids); | ||||||
|  |             if (!in_array($order->plan_id, $limitPlanIds)) { | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										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/assets/user/umi.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/assets/user/umi.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user