mirror of
https://github.com/v2board/v2board.git
synced 2025-06-16 22:57: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
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -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