mirror of
https://github.com/v2board/v2board.git
synced 2025-06-17 15:17:48 +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