mirror of
				https://github.com/v2board/v2board.git
				synced 2025-11-01 01:41:47 +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 | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user