Plans: add publish toggle action and UI

This commit is contained in:
萝卜
2026-03-14 23:21:59 +00:00
parent 9a94ad3195
commit bfd8f7784c
4 changed files with 105 additions and 0 deletions

View File

@@ -219,6 +219,28 @@ class PlanController extends Controller
return redirect()->back()->with('success', '套餐状态已更新:' . ($this->statusLabels()[$plan->status] ?? $plan->status));
}
public function setPublished(Request $request, Plan $plan): RedirectResponse
{
$this->ensurePlatformAdmin($request);
$data = $request->validate([
'published' => ['required', Rule::in(['0', '1'])],
]);
$published = (string) $data['published'] === '1';
if ($published) {
// 最小治理:发布动作仅写 published_at不改变 status避免误把草稿/停用套餐误启用)。
$plan->published_at = $plan->published_at ?? now();
} else {
$plan->published_at = null;
}
$plan->save();
return redirect()->back()->with('success', $published ? '套餐已发布' : '套餐已取消发布');
}
public function update(Request $request, Plan $plan): RedirectResponse
{
$this->ensurePlatformAdmin($request);