mirror of
				https://github.com/v2board/v2board.git
				synced 2025-10-31 09:21:46 +08:00 
			
		
		
		
	update: rewrite buy limit
This commit is contained in:
		| @@ -85,7 +85,7 @@ class OrderController extends Controller | ||||
|             abort(500, __('Subscription plan does not exist')); | ||||
|         } | ||||
|  | ||||
|         if ($plan->inventory_limit !== NULL && !$plan->inventory_limit) { | ||||
|         if (!$planService->haveCapacity()) { | ||||
|             abort(500, __('Current product is sold out')); | ||||
|         } | ||||
|  | ||||
| @@ -160,10 +160,6 @@ class OrderController extends Controller | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (!$planService->decrementInventory()) { | ||||
|             abort(500, __('Failed to create order')); | ||||
|         } | ||||
|  | ||||
|         if (!$order->save()) { | ||||
|             DB::rollback(); | ||||
|             abort(500, __('Failed to create order')); | ||||
|   | ||||
| @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; | ||||
| use App\Models\User; | ||||
| use Illuminate\Http\Request; | ||||
| use App\Models\Plan; | ||||
| use Illuminate\Support\Facades\DB; | ||||
|  | ||||
| class PlanController extends Controller | ||||
| { | ||||
| @@ -23,12 +24,32 @@ class PlanController extends Controller | ||||
|             return response([ | ||||
|                 'data' => $plan | ||||
|             ]); | ||||
|         } else { | ||||
|             $counts = User::select( | ||||
|                 DB::raw("plan_id"), | ||||
|                 DB::raw("count(*) as count") | ||||
|             ) | ||||
|                 ->where('plan_id', '!=', NULL) | ||||
|                 ->where(function ($query) { | ||||
|                     $query->where('expired_at', '>=', time()) | ||||
|                         ->orWhere('expired_at', NULL); | ||||
|                 }) | ||||
|                 ->groupBy("plan_id") | ||||
|                 ->get() | ||||
|                 ->keyBy('plan_id'); | ||||
|         } | ||||
|         $plan = Plan::where('show', 1) | ||||
|         $plans = Plan::where('show', 1) | ||||
|             ->orderBy('sort', 'ASC') | ||||
|             ->get(); | ||||
|         if (isset($counts)) { | ||||
|             foreach ($plans as $k => $v) { | ||||
|                 if (isset($counts[$plans[$k]->id])) { | ||||
|                     $plans[$k]->capacity_limit = $plans[$k]->capacity_limit - $counts[$plans[$k]->id]->count; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return response([ | ||||
|             'data' => $plan | ||||
|             'data' => $plans | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -27,7 +27,7 @@ class PlanSave extends FormRequest | ||||
|             'onetime_price' => 'nullable|integer', | ||||
|             'reset_price' => 'nullable|integer', | ||||
|             'reset_traffic_method' => 'nullable|integer|in:0,1,2,3,4', | ||||
|             'inventory_limit' => 'nullable|integer' | ||||
|             'capacity_limit' => 'nullable|integer' | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
| @@ -49,7 +49,7 @@ class PlanSave extends FormRequest | ||||
|             'reset_price.integer' => '流量重置包金额有误', | ||||
|             'reset_traffic_method.integer' => '流量重置方式格式有误', | ||||
|             'reset_traffic_method.in' => '流量重置方式格式有误', | ||||
|             'inventory_limit.integer' => '库存限制格式有误' | ||||
|             'capacity_limit.integer' => '容纳用户量限制格式有误' | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user